我想做一个简单的版本控制系统,但是我对如何构造数据和代码没有任何想法。
这是一个简短的示例:
用户应该能够看到树。(不同的版本)该树最多可以包含2个级别:
| |--File_A_0 \--File_A_1 \--File_A_2 \--File_A_3 \--File_A_4
文件也有2种类型,即最终版本(最新批准的版本)和草稿版本(最新上传的文件)。文件将物理存储在服务器上。每个文件均由一个(或多个)用户拥有,并且只有一个组。
编辑: 组代表一组文档,文档一次只能由一个组拥有。用户不依赖组。
开始编辑:
这是我所做的,但是效率不高!
id_article | relative_group_id | id_group | title | submited | date | abstract | reference | draft_version | count | status id_draft | id_file | version | date
但是很难扩展。我认为这是因为小组参数…
结束编辑
所以问题是:
(该应用程序是使用PHP和Zend Framework开发的,数据库应该是mysql或postgresql)
看在上帝的份上, 不要 。您真的不想走这条路。
停下来思考一下大局。您想保留文档的早期版本,这意味着在某个时候,有人会希望看到其中的某些早期版本,对吗?然后他们会问: “版本3和版本7有什么区别?” 然后他们会说: “我想回滚到版本3,但是保留我在版本5中所做的一些更改,好吗?”
版本控制是不平凡的,并且不需要重新发明轮子-那里有许多可行的版本控制系统,甚至有些是免费的。
从长远来看,学习这些系统之一的API并编写一个Web前端代码将更加容易,该Web前端可以为用户提供他们正在寻找的功能的子集(现在)。
您不会为用户编写文本编辑器,对吗?