I wish to turn your attention to this:
It is not possible to design a database without having a FULL FULL FULL image and understanding of the business:
1) At what questions the database must ANSWER ?
2) In order to answer to this questions, what is the MINIMAL set of the input data?
3) How manually answer to this questions starting from the input data ?
The computers NEVER do something that you can't do manually.
The single difference is the speed.
I'm sure that the experts have other words to describe this, but this approach have worked for me every time until now.
I write this post because I have seen a lot of guys, smart guys with no doubt, that first start to design a database, then, starting from the already designed database, trying to accomplish the 1), 2), 3) blue points.