需要对现有系统进行版本控制

本文关键字:版本控制 有系统 | 更新日期: 2023-09-27 17:53:29

我正在一个系统上工作,现在需要维护版本。我将简要地向你解释这个项目。我们有一个CMS,其中有三个用户。超级管理员,2。编辑器,3。审批人。编辑从CMS添加数据并将其发送给审批人,如果审批人批准数据,则只有在这种情况下,数据才在前端可见。现在,如果编辑编辑了相同的数据,那么它将不被批准并从前端删除,他将再次将其发送给审批者,并遵循相同的过程。这是它现在的工作方式

客户现在已经改变了要求,现在他想要的是,一旦数据被批准并在网站中可见,即前端和编辑器现在编辑数据,它不应该从前端删除,新的编辑数据应该发送审批,当审批者批准数据时,旧的数据应该在前端替换为新的数据。

数据库设计真的很糟糕,所以很难实现这个。

我们想到的解决办法是……例如,编辑器可以在前端添加某种新闻。所有与news相关的数据都被添加到news表中。编辑将新闻发送给审批员,然后他批准。在此之前没有任何问题。现在假设由于某种原因,他想编辑被批准的同一条新闻。当他点击编辑按钮时,它就从前端删除了,所以我们认为就像维护另一个表,比如具有相同结构的temp_news,当他在编辑新闻被批准后点击编辑新闻时,应该在temp_news表中插入一条新记录,并将新闻表的值添加到这个表中。在此之前,我们将在前端显示来自新闻表的新闻。现在我们在两个表中有相同的新闻数据。审批者和编辑现在可以进行所有更改,我们将更新temp_news表。一旦审批者批准了修改后的数据,我们将用temp_news表中的值更新新表。在前端,我们有更新过的new's。这个解决方案的问题是,一旦修改被批准,表news和temp_news都有最新的数据。这不是版本控制。需要一个解决方案。

我只是个初学者。

需要对现有系统进行版本控制

我只需要一个表来存储相同数据的多个版本

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将为false假设同一新闻有3个版本。它看起来像

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

像Git这样的版本控制系统呢?保留版本,包括Git中待批准的版本和数据库表中已批准的版本(只有一个)。当一个新的文件被批准时,将它移到数据库中。因为你正在使用c#和ASP。像git#这样的东西可能对你有帮助

人们已经在这么做了:

这是一个django网站:所有内容都存储在文本文件中。我使用git管理这些文件。一个小脚本将这些文件加载到数据库,然后django为它们服务。

事实上,所有的内容都与其有关历史实际上是公开的(但你不必做你的历史可用,以便使用此系统)。你们都能看到这个django-gitcms.

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

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

基于git的内容管理?