Ask HN: how to learn principles of DB schema design?

5 points by tjic ↗ HN
I've been working with MySQL for several years, and I'd call myself pretty competent (I grok and use temporary tables, sub-selects, multiple types of joins, explain, etc.), but my knowledge of the * principles * of database design might be lacking. What I know basically comes from reading Wikipedia articles.

Aside from reading up on database normalization ( http://en.wikipedia.org/wiki/Database_normalization ), and related database articles, what do folks recommend ?

Just to be clear: if we were talking about programming languages, I'm not asking how to be a better BASIC programmer - I'm asking 'what is lisp and how do I learn it?'.

thanks,

TJIC

1 comment

[ 3.0 ms ] story [ 15.4 ms ] thread
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...