我一直在做一個項目,需要的草案內容/現場版,並想到了設計,如下面:草案/直播內容系統數據庫的設計
Article
ID
Creator
CreationDate
DraftContent(fk to ArticleContent)
PublicContent(fk to ArticleContent)
IsPendingApproval
ArticleContent
Title
Body
我想知道如果這將是最好在發佈文章時更改外鍵,或者更好地將草稿表中的內容複製到活動表中。
有什麼建議嗎?
編輯:草稿版本和實時版本同時存在,但實時版本是唯一一個公衆可見的版本。只能有一個草案和一個現場表
這個設計的部分原因是強制用戶在他們上線前批准他們的文章。
更新:
我們決定稍微修改Kieren的解決方案。我們決定使用單個狀態列,而不是像IsPublished IsLive這樣的項目使用列。否則,設計保持不變。這成爲活,然後文章
+1,「具有獨立內容表的文章單表」實際上是在這裏飛行的方式。 –
可能非常簡單 - 每個ArticleVersion都有一個ApprovedBy/ApprovedDate,如果它是空的(在業務邏輯中)它不能被設置爲當前版本? –
而不是有一個版本號會不會更好地做版本行的修訂日期和創建日期?這樣,用戶可以修改草稿直到太陽下山,並且在網頁發佈時僅顯示不同的版本? –