我正在使用需要版本控制文檔的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. mysql數據版本控制系統的最佳做法
- 6. 簡單的版本控制系統或版本控制文件系統或版本控制數據庫
- 7. 保存數據庫字段更改 - 最佳實踐?版本控制,可記錄?
- 8. 數據庫最佳實踐
- 9. 混合數據庫系統:用於數據的NoSQL,用於關係的SQL。最佳實踐?
- 10. 如何建立自定義CMS的版本控制系統?
- 11. 如何創建「Watch」系統?尋找最佳實踐
- 12. 基本控制器的最佳實踐
- 13. 使用無關數據的關係數據庫 - 最佳實踐
- 14. 在控制器中創建函數的MVC最佳實踐
- 15. cakephp消息系統方案/模型/控制器最佳實踐?
- 16. 構建個人php cms-最佳實踐
- 17. 使用Google文檔最佳實踐進行版本控制?
- 18. 在自動構建系統中碰撞您的版本號的最佳實踐?
- 19. 控制最佳實踐
- 20. 最佳實踐控制
- 21. 手機應用程序的最佳版本控制系統?
- 22. 創建包含大數據的共享庫的最佳實踐
- 23. 寫作POS系統的最佳實踐
- 24. 版本控制網站的最佳實踐?
- 25. 多機器和版本控制開發的最佳實踐
- 26. 紅寶石寶石的版本控制最佳實踐
- 27. 什麼是版本控制XML模式的最佳實踐?
- 28. 創建通知數據庫表的最佳實踐
- 29. 版本實體的最佳實踐?
- 30. 在sql和c中進行數據版本控制的最佳實踐#
鏈接已損壞:MediaWiki的最新數據庫架構位於:https://upload.wikimedia.org/wikipedia/commons/9/94/MediaWiki_1.28.0_database_schema.svg – eduludi 2017-04-19 12:19:49