One of the frustrations of data modeling is the regularity with which the same problems re-surface, and our propensity to tackle them from first principles (or no principles) rather than building on an understanding of established work.
Know the feeling? Go have a look at this must read article by Graeme Simsion.
http://www.tdan.com/i036fe02.htm