Few technical decisions get argued about as fiercely, or chosen as carelessly, as the database. People will defend their favourite to the death online, and then in real projects someone picks one in five minutes because it's what the last developer happened to know. Both extremes get you into trouble. The database is the foundation your whole solution sits on, and replacing it later is one of the most painful, expensive changes you can make.

Here's the good news: choosing well is less about knowing every product and more about asking the right questions about your data. Get those answers straight and the shortlist almost writes itself.

This is the same conversation we have with clients before a single table gets created. No religious wars, no "best database" leaderboard, just a practical way to match the tool to the job.

First, the question behind the question

"What database should we use?" is rarely the real question. The real questions are about your data and how you'll use it:

Answer those honestly and you've done eighty percent of the work. The product names are just the last twenty.

The big split: relational vs the rest

Almost every database falls into one of two broad families, and knowing which one you need narrows the field dramatically.

Relational (SQL) databases

These store data in tables with defined columns and enforce relationships between them, PostgreSQL, MySQL/MariaDB, Microsoft SQL Server, Oracle. They're the default for a reason. If your data is structured and connected (and most business data is, customers have orders, orders have line items, line items have products), a relational database is almost always the right starting point.

Their superpower is integrity. Transactions either complete fully or not at all, so your books balance and your stock counts stay honest. They speak SQL, a mature query language that almost every reporting and BI tool understands, which matters enormously when leadership wants dashboards later.

NoSQL databases

"NoSQL" is really a family of specialised tools, each good at something relational databases find awkward:

NoSQL isn't "newer and therefore better." It's "different, and better for specific shapes of problem." Reach for it when you have one of those problems, not because it's fashionable.

A practical way to choose

Here's the decision path we actually use, in order:

  1. Default to PostgreSQL unless you have a clear reason not to. It's free, rock-solid, handles relational and JSON document data, and scales further than most businesses will ever need. For the majority of business applications, the honest answer is "Postgres, and stop overthinking it."
  2. Choose SQL Server if you're deep in the Microsoft ecosystem, Windows infrastructure, .NET applications, BI and analytics reporting. The integration and tooling pay for the licence. (It's what powers our own Period Pilot fiscal calendar system, precisely because it slots into BI and reporting tools so cleanly.)
  3. Choose MySQL/MariaDB for straightforward web apps, especially on common hosting stacks where it's the path of least resistance.
  4. Add a specialist alongside, not instead. Need caching? Add Redis next to your main database. Need full-text search? Add a search engine. Most strong systems are a relational core plus one or two specialists, not a single exotic database trying to do everything.
  5. Only go document-first (e.g. MongoDB) when your data genuinely has no stable shape, or you're optimising for a specific access pattern at large scale, and you've accepted the trade-offs in reporting and consistency.

The mistake we see most

Picking NoSQL "for scale" before there's any scale to speak of, then spending months rebuilding the joins, transactions and reporting the relational database would have given for free. Choose for the problem you have, with a sensible eye on the one you'll realistically grow into. Premature optimisation for a million users you don't have yet is just complexity you pay for today.

The factors people forget

The technical fit matters, but these quieter factors decide whether you're happy in two years:

So, what's the right one?

For most businesses building most applications, a well-designed relational database, PostgreSQL or SQL Server, is the right answer, with a specialist tool added only where a specific need demands it. That's not a boring answer; it's a battle-tested one. The exciting failures usually come from chasing novelty instead of fit.

The deeper truth is that the database is a strategic decision dressed up as a technical one. Choose it with your three-year picture in mind, your reporting needs, your growth, your team, not just this month's feature. That's exactly the kind of foresight a good technology partner brings to the table before the first line of code is written.