6

嗯,我已經看到了一些插件來創建一個版本表來跟蹤特定的模型修改,但不能做很容易像Quora的顯示修訂版本如何控制quora?數據庫設計

Changing a topic photo on quora

我至今是一個表這樣的:

  • ID
  • ITEM_TYPE:especifies什麼型號的版本是指: 「主題」
  • ITEM_ID
  • 事件:如果它是: 「編輯,添加,還原,刪除」
  • :誰觸發事件
  • :在 「主題」 什麼列價值已經改變。 「主題PHOTO_URL。」
  • :新的價值: 「http://s3.amazonaws.../pic.png
  • 舊值: 「」 http://s3.amazonaws.../oldpic.png
  • revision_rel:指向過去的修訂
  • 時間戳

enter image description here

有人可以給我一些幫助和指導這個設計?林擔心表現,錯列,缺失列等

id | item_type | item_id | event | who | column | new  | old  | revision_rel | date 
________________________________________________________________________________________________________ 
1 | Topic | 2 | edit | Luccas | photo | pic.png | oldpic.png | null  | m:d:y 
2 | Topic | 2 | revert | Chris | photo | oldpic.png | pic.png |  1  | m:d:y 
+0

你可能不需要這個了......但如果記錄所有事件(創建,編輯,銷燬),則可能不需要存儲舊值和新值。版本2的舊值是版本1的新值。 取決於您的用例。 –

回答

1

有一些寶石可用,已經做了你在找什麼。你有沒有到:

拿一個看起來在現有的寶石: https://www.ruby-toolbox.com/categories/Active_Record_Versioning

我使用的審計(以前acts_as_audited)非常相似的東西: ​​3210

+0

稍後我會編輯我的問題,說這個插件不能做我需要的。我想按列進行版本控制,而不是整行。我將在稍後介紹這一點,以及如何實施。但謝謝你的答案。 – Luccas