当前,我正在开发一个博客系统,我希望一篇文章可以由多位注册作者共同撰写,因此,我希望它可以为这些文章提供简化的git-like版本控制,从而可以进行分支和显示两种版本的文章之间的差异。
但是问题是,文章存储在数据库表中,而git的版本控制基于文件系统,因此我不能直接使用git来实现此功能。
谁能给我一些有关如何设计数据库表,相关API和此功能的高级逻辑的想法?谢谢。
答案 0 :(得分:0)
基本上,我会:
创建表“版本”(具有n-n个“父”关系)
向我的表中添加一个字段“ id_revision”,默认为NULL(或者可能是一个特殊的修订版ID);并根据此字段的值对该表进行分区,以使文章的先前修订版本不会存储在同一表中
您可以创建钩子来自动保存旧的修订版(也许在“待定”的修订版中,然后您可以提交,即将“待定”的修订版保留为一个编号)
但是有很多问题待定。
您还可以使用表(表/字段/值)而不是整个行来存储已更改的字段
我认为您必须尝试不同的架构,并对其进行测试。
答案 1 :(得分:0)
这不是与git相关的问题。您只需要在数据库级别上实现版本控制,这是一个独立的项目,通常可以在编码人员和数据库开发人员之间进行处理。在某种程度上,您只需要执行git开发人员在需要使用版本控制作为源代码时所做的工作即可。这不是一个简单的项目。这里没有快速简便的答案。