When discuss web dev projects, people frequently ask me which database is “the best”. Do you want to know the deep, dark secret? Shhhh … do not tell anybody this … but it doesn’t really matter because they are all pretty much (very quiet now) the same. OH MY GOD! Yes.
When deciding which database cornerstone to base the foundation of your site upon, it actually doesn’t make that much difference. You don’t want to use Access or any consumer-level database. For the more techie among you, that means don’t use any file system-structured database. Speed will destroy you there and you’ll lose data under load. But among the server products, i.e. MySQL, SQL 2000, SQL 2005, Oracle, or PostGreSQL, the level of performance is about the same.
So then it boils down to an issue of maintenance. The key is making sure you have one or more reliable developers that can support that flavor of database. You don’t want to get stuck with something completely proprietary that only one guy in the world can maintain. Otherwise what happens when he’s laid up on Vicadin after faceplanting a backside 720 at Mammoth and you find out some North Korean by the “name” of l33tHaxor is running an export of into your credit card table? Two words; “adult” and “diapers”.
Let me temper all of this by saying that once your site gets a ton of users, you’ll want to benchmark your app’s typical queries on each of the database systems. Probably one or two will be a standout. And it’s usually pretty easy to migrate databases from one system to another. Funny enough, Access actually shines in that situation. It’s great as a middle-tier app for data migrations from heterogenous data sources. (By the way, if you have no idea what I meant there, fear not, it means you probably have a solid social life and/or do not spit when you talk.)
I’ve done these scale-ups before and they are normally quite painless. Of course, the app has to be built right, but .NET does a primo job of making this step easy.