We just finished a completely dynamic site recently. Essentially our database has the following tables:

1. Items - contains all the content
2. Categories - A list of all the categories, setup in a tree like structure.
3. CategoryItems - A table related to categories, that contain a list of items that are attached to each category
4. ItemsRelated - A list of items that are related to other items.

The above structure has a lot going for it. You can have an article appearing in more than one category, you can have many articles related to one article, thus creating hyperlinks.

This is also great for creating a front-end catalog for a shopping cart as well.