how to learn principles of DB schema design?
duskwuff: Besides studying database normalization (know your 3NF and your BCNF and whatnot), another excellent starting point is taking a look at existing database schemas - in web applications, for instance - and consider what they've done right and wrong. ("Right" and "wrong" are debatable, but a generally good definition is that the "right" design makes writing queries simple and running them fast, whereas a "wrong" design makes queries complicated and/or slow.)The MediaWiki schema is an excellent example of good schema design. If you haven't seen it before, take a look: http://commons.wikimedia.org/wiki/File:Mediawiki-database-sc...