I am working on a project that requires draft / live versions of the content and was thinking of a design like the one below:
Article
ID
Creator
CreationDate
DraftContent(fk to ArticleContent)
PublicContent(fk to ArticleContent)
IsPendingApproval
ArticleContent
Title
Body
I am wondering if it would be better to change the foreign keys to the published article, or better just copy the contents from the drawing table into a living table.
Any suggestions?
Edit: both drafts and live versions exist immediately, although the live version is the only one that is visible to the public. There can be only one draft and one living table
Part of the reason for this design is to get users to approve their articles before they start living.
Update:
Kieren . , IsPublished IsLive, . .