需要对现有系统进行版本控制
本文关键字:版本控制 有系统 | 更新日期: 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#这样的东西可能对你有帮助
人们已经在这么做了:
http://luispedro.org/software/git-cms http://nestacms.com/docs/creating-content/publishing-articles-with-git 基于git的内容管理?这是一个django网站:所有内容都存储在文本文件中。我使用git管理这些文件。一个小脚本将这些文件加载到数据库,然后django为它们服务。
事实上,所有的内容都与其有关历史实际上是公开的(但你不必做你的历史可用,以便使用此系统)。你们都能看到这个django-gitcms.