2011-04-26 36 views
2

我正在研究一個現在需要維護版本的系統。 將向您簡要介紹該項目。 我們有一個CMS,其中有三個用戶1.超級管理員,2.編輯,3.批准者。 編輯器從CMS添加數據並將其發送給審批者,如果他只在這種情況下批准數據,則在前端可見。現在,如果編輯編輯了相同的數據,那麼它將被拒絕並從前端移除,然後將其發送給審批者,隨後將執行相同的過程。這是現在的工作方式。需要做現有系統的版本控制

客戶端現在已經改變了需求,現在他想要的是,一旦數據被批准並在網站中可見,即前端和編輯器現在編輯數據,則不應從前端刪除數據,並且新編輯的數據應該請發送批准,當審批者批准數據時,舊數據應在前端替換爲新數據。

數據庫設計真的很糟糕,所以很難做到這一點。

我們想到的解決方案是... 例如編輯器可以在前端添加某種新聞。所有數據w.r.t新聞都添加到新聞表中。編輯添加的消息發送給審批,然後他批准。直到這裏沒有問題。現在假設他出於某種原因想要編輯同意的新聞。當他點擊編輯按鈕時,它會從前端移除,所以我們認爲像維持另一張表,像是具有相同結構的temp_news,並且在批准新的記錄後點擊編輯新聞的時刻應該被插入到temp_news表中使用此表中添加的新聞表中的值。直到前端,我們將顯示新聞表中的消息。所以現在我們在兩張表中有相同的新聞數據。批准者和編輯現在可以進行所有更改,我們將更新temp_news表。審批者審批此更改的數據時,我們將使用temp_news表中的值更新新表。所以現在在前端我們有更新的新的。 這個解決方案的問題是,一旦更改被批准,新聞和temp_news都有最新的數據。這不是版本控制。 需要一個解決方案。

我只是一個初學者。

回答

2

我只想有你使用存儲相同的數據

news 
---- 
ID   int 
newsItem  int 
dateCreated datetime 
IsApproved boolean 
content  text 

然後對顯示的多個版本一個表前端。只是

SELECT top(1) * FROM news where IsApproved = true orderby dateCreated desc 

所以前面只會顯示最近批准的版本。

和較新的版本只會得到一個新的ID和dateCreated,但isApproved將是假的 所以說,如果你有3個版本的同一個新聞項目。它會看起來像

ID newsitem dateCreated IsApproved 
1   1  2011-4-26  false 
2   1  2011-3-20  true 
3   1  2011-1-6   true 
+0

我的問題是,對於新聞我有一張表,但對於產品有多個表正在更新。 這種情況下的工作? 將嘗試這個並回饋給你。 感謝您的幫助。 – Sayed 2011-04-26 06:23:53

+0

嗨Daveo, 這是我的表結構。 NewSID的 - PrimaryKey的 CountryId - FK [將國家加入這一消息] 登錄ID - FK [哪個用戶已經創建了這個消息,即用戶ID] 標題 說明 FullStory 圖片 活動 - 它的一個char場[這是新的。活動或非活動] ApproveStatus - 它的一個char場 DupEditor - CompleteStatus - 是新聞高達日期和完整 AdminType數據 - 編輯超級管理員或編輯 CREATE_DATE START_DATE的WATS d型 - 開始的新聞 日期END_DATE - 新聞結束日期。 – Sayed 2011-04-26 06:53:44

+0

該網站已經存在,並且有很多數據很難添加像newsitem這樣的新字段。 喜歡你的解決方案,但不知道它是否會在我的情況下工作 – Sayed 2011-04-26 06:54:28

1

Git等版本控制系統如何?保持版本,包括Git中批准的版本和數據庫表中批准的版本(只有一個版本)。當新版本批准後,將其移至數據庫。由於您使用C#和ASP.NET,像git#可能會有助於您

的人已經這樣做了:

這是一個Django的網站,一擰: 所有內容都存儲在文本文件。我使用git管理這些文件。一些 腳本將這些文件加載​​到 數據庫中,然後django爲它們提供服務。

事實上,所有的內容和它的歷史 實際上是公開的 (但你沒有做你的 歷史可以用這個 系統)。你可以看到這個 如何使用django-gitcms的例子。

http://luispedro.org/software/git-cms

http://nestacms.com/docs/creating-content/publishing-articles-with-git

Git-based content management?

+0

將試圖找回你。 感謝您的幫助。 – Sayed 2011-04-26 06:22:34