httpwebwitch - 7:08 pm on Oct 3, 2011 (gmt 0)
version control is also a no-brainer - when content changes, do an INSERT instead of an UPDATE, drop in a timestamp. Then when you're selecting content, grab only the most recent row.
Approval & access control & so forth will merely be more columns in your giant content table. They can be added later, if you need them.
The gotcha will be, you guessed it, speed.
Solve all your SQL injection problems right away, so they don't bite 'ya later. see mysql_real_escape_string()
make sure your SQL table has appropriate indexes on primary keys.
I'd plan some way to leverage caching from the get-go. At least get the concept down on paper before you start, so caching CAN be added soon after the SQL guts are done.
One advantage you might not have expected, is that this kind of setup will let you request content via AJAX, and into multi-purposed apps for mobile devices & XML feeds etc.