I agree with the previous responders, but thought I would add the following, since you are asking a pretty general question.
Prior to about 1970, many programmers were asking questions about whether a particular "method" was a good one. Than along came Dr. E. F. Codd, a mathematician at IBM, who developed the mathematical set theory of relational databases. Since then, it really is not a matter of rating one method against another. There is one fundamental way to design relational databases so that they will be guaranteed to work with SQL. Now that I've stated that so categorically, it's only fair to admit that practical considerations often drive experienced developers to modify the "theoretical" design under certain conditions. But that should be done only after a fully normalized structure has been evaluated and understood.
The way to think of a new database is to determine the scope of the data model, then specify the entities that you will represent, then their relationships and their attributes. If you always approach database design in this way, your task will be much easier and you will make intelligent decisions. Defining scope and entities can be a little "fuzzy" at times, but it forces you to consider all the ill-defined issues at the beginning of your project, not after you've invested a lot of effort into a design that turns out to be weak or even completely unworkable.
I recommend that one of the best investments of your time would be to read some tutorials on database normalization. There are lots of them online and in books.
don94403, October 24th, 2008 04:25 PM
Bookmarks