[eluser]WanWizard[/eluser]
I store "content blocks" in a multiple root nested sets table.
The root ID is the block id, the children are the different revisions. It has publishing date information, and publishing state information (p.e. approvals).
To determine which block (if any) to display, I fetch the first child, check the state, and if that revision can't be published, loop through the next children to find one.