我正在使用需要版本控制文档的CMS等系统。
创建数据库的最佳实践和方法是什么?创建数据库用于版本控制系统的最佳实践,如CMS
2
A
回答
4
我会先看看MediaWiki did it在运行维基百科的开源项目中。他们都是关于版本控制。
1
当我这样做,一旦我发现它运作良好,有一个像表结构:即可以改变应该进入修订表(例如内容)
tbl.posts
postid(PK) | title | category
tbl.revisions
revisionid(PK) | postid(FK) | authorid(FK) | content | date
场,事情不会去在帖子表(postid,类别等)中。
从我听到的最后一个播客中看到,StackOverflow做了类似的事情。
2
我更喜欢在第一次添加新帖子的时候以相同的方式存储新的(新版本),但是我有一个名为“childOf”的列,它存储父帖子的ID,查询外观是这样的:
SELECT * FROM posts WHERE condition=value ORDER BY childOf DESC;
+1
添加“LIMIT 1”,如果你只想要最近的结果。 – UnkwnTech 2009-01-31 14:23:31
1
以我的经验,最好是有两个不同的表用一个不需要进行版本的数据,而另一个与需要进行版本(如Spikolynn中说,他的数据/她以前的回答)。
我只使用一个表时发现的问题是,如果其他表具有指向该版本化表的外键,因为每次更新记录时主键都会更改,则引用将丢失。这导致非常复杂和低效的查询以恢复数据。
0
Chukc,你可以做些什么来解决这个问题是通过添加额外的字段,用其作为外键
比方说,你有帖子:
id, revision, name, content
修订为:
id-publish or id-draft or id-revision-N
然后,您将您的其他表格链接到修订版id发布而不是id。请记住索引:)
相关问题
- 1. 版本数据库的最佳实践
- 2. 版本控制DTO最佳实践
- 3. 构建SSO系统的最佳实践
- 4. 用于管理主目录的最佳版本控制系统
- 5. 简单的版本控制系统或版本控制文件系统或版本控制数据库
- 6. 保存数据库字段更改 - 最佳实践?版本控制,可记录?
- 7. 混合数据库系统:用于数据的NoSQL,用于关系的SQL。最佳实践?
- 8. 数据库最佳实践
- 9. 基本控制器的最佳实践
- 10. 使用无关数据的关系数据库 - 最佳实践
- 11. cakephp消息系统方案/模型/控制器最佳实践?
- 12. 使用Google文档最佳实践进行版本控制?
- 13. 构建个人php cms-最佳实践
- 14. 最佳实践控制
- 15. 控制最佳实践
- 16. 手机应用程序的最佳版本控制系统?
- 17. 写作POS系统的最佳实践
- 18. 版本控制网站的最佳实践?
- 19. 多机器和版本控制开发的最佳实践
- 20. 什么是版本控制XML模式的最佳实践?
- 21. 红宝石宝石的版本控制最佳实践
- 22. 在sql和c中进行数据版本控制的最佳实践#
- 23. 版本实体的最佳实践?
- 24. 使用ASP.NET MVC 3构建REST API的版本控制 - 最佳实践
- 25. 用于实时数据库的最佳SCM实践
- 26. 使用数据库最佳实践?
- 27. 最佳实践:数据库引用表
- 28. 版本控制约定和最佳实践
- 29. 单文件版本控制最佳实践?
- 30. Sqlite数据库创建,最佳实践Android
链接已损坏:MediaWiki的最新数据库架构位于:https://upload.wikimedia.org/wikipedia/commons/9/94/MediaWiki_1.28.0_database_schema.svg – eduludi 2017-04-19 12:19:49