2011-12-29 29 views
0

我正在構建一個小型CMS,以根據客戶的指示培訓內容。我建議使用現有的CMS,但他也想從頭開始編碼。關於實施CMS的大多數其他問題都集中在高級CMS功能上,例如模板,編輯,搜索引擎優化,路由等,但我根本沒有看到很多關於低級別方面的內容,尤其是內容版本等。關於在MVC3中實現CMS功能的建議

具體說明:是否有任何組件或庫可以查看持久性以及我在CMS中稱爲ContentItem的版本管理,還是我可以自己諮詢的好資源? A ContentItem是應該有更改跟蹤,模板化字段等的任何大段文本。標準電子郵件,博客文章,培訓內容,測試答案等。

指向我可用於在Entity Framework級別進行變更跟蹤的事情將是一項獎勵。

回答

1

將版本添加到任何數據庫表格非常簡單。只需爲版本添加一個附加字段,這可以是日期時間,時間戳,或者甚至只是您添加的序列號。你使用你的退出鍵(或者甚至只是一個唯一的約束)使它成爲一個複合主鍵,而你是黃金。規則是,所有更新都是插入。

這真的很簡單。然後在你的查詢中,你只是總是得到最新版本默認情況下(做一個TOP 1與訂單通過降低作品很好)

+0

它可以是這麼簡單,但我可能需要更多一點,如哪個版本已發佈等,'分支'等 – ProfK

+0

@ProfK - 我不知道許多支持分支的CMS。大多數最終用戶會被這個概念所困惑(我知道,我試圖解釋在使用版本控制進行文檔管理時它是如何工作的)。當然,您的「內容項目」將包含與發佈相關的成員,但我假設您已經理解了這一點。你在問版本控制。 –

+0

我一般會問,關於包含版本管理的組件或庫,假設這樣的設備有其他設施,而不是我已經介紹過的。 – ProfK