Live Content Database Project

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, . .

+5
2

, ,

/ - IsLive.

; . , . , . .

, ,

, , , Article, ArticleVersion, . ArticleVersion IsLive , , Article CurrentLiveVersionId. , , Article ArticleVersion ArticleVersion , CurrentLiveVersionId, .

ArticleVersion , , , . .

, .

+8

. , :

  • UPDATE PublicContent, () .

  • DELETE .

  • NULL DraftContent , , INSERT , ArticleContent DraftContent.

+1

All Articles