My attitude to this is somewhat opposite. I would advise not to particularly emphasize the design of the database.
Sometimes it can be tricky. With internal LOB applications, the prevailing view of the business is often that DATA is the main asset, where, since the software is somewhat consumed.
My advice: do not buy it.
In fact, an asset is a company's ability to INTERACT with data. To view it, manage it and make decisions based on it.
This means that even if they can put a lot of value into the data, what they actually value is the software that you write.
This means that I will focus on creating an effective user interface, rather than on "developing an ideal database." A database is just a tool that allows you to execute a user interface.
A key feature of relational data models is data and access independence. You can add columns, change keys, enter or delete indexes, etc. Having zero effect (or close to zero) for applications that use it.
This makes the database structure extremely flexible.
Trying to create a database “agile in the future” or “optimize performance” is basically a wasted action.
Changing the database structure will have a relatively small impact on your system.
In addition, you really cannot predict how the database will scale until you come across scenarios where you need to scale. It’s best to wait until you run into performance issues. and then contact them on purpose.
However, changes to the user interface of your application are usually more expensive. The user interface is time consuming and usually takes some time to get right.
So, I would recommend you:
- Just create a crappy database design
- Respond to real-life performance scenarios you encounter
- Focus on the user experience, not the database.
Scott Wisniewski Dec 22 '08 at 21:39 2008-12-22 21:39
source share