I'm also an autodidact on DB design, although it's well more than a year now. If you are planning to clean up the design, I strongly suggest getting a visual tool. Google for something like "database design tool". Some are extremely expensive (e.g. ERwin, which I think is renamed having been bought out). There's a very cheap shareware one that I won't mention by name because it crashed my machine consistently. Right now I'm using "Case Studio", which has some very eccentric UI (no one enforced consistency of UI across modules, which is rather ironic in a design tool) but capable and user-extensible. ERwin's manual also had the best explanation of denormalization I've read, short and to the point.
The ability to make schema revisions quickly lets me concentrate on *better-written queries* and *improved table definition* without having to overcome inertia. ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match