6

Eh, belirli modellerde değişiklikler takip etmek için bir sürüm tablo oluşturmak için bazı eklentileri gördüm, ama cant Quora'daki gibi kolayca yapmak ne var bugüne kadar bir tablodurDüzeltmeler denetimde nasıl çalışır? Veritabanı tasarımı

Changing a topic photo on quora

gösterir böyle:

  • id
  • item_type: especifies ne model revizyon anlamına gelir: "Konu"
  • olayı ITEM_ID: imiş: "Düzenlenen, kaldırıldı döndürüldü eklendi"
  • kim: olayı tetikleyen kim
  • kolon: "Konu" hangi sütun değer değişti. "Konu PHOTO_URL."
  • yeni: yeni değer: "http://s3.amazonaws.../pic.png"
  • eski eski değeri: "" http://s3.amazonaws.../oldpic.png "
  • revision_rel: geçmiş revizyon
  • damgası işaret

enter image description here

Birisi bana bu tasarımla ilgili yardım ve yönergeler verebilir mi? performans, yanlış sütunlar, eksik sütunlar endişe Im, vb

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

Muhtemelen artık buna ihtiyacım yok ... ancak tüm olayları (yarat, düzenle, yok et) kaydederseniz eski ve yeni değeri saklamanız gerekmeyebilir. Versiyon 2'nin eski değeri, sürüm 1'in yeni değeridir. Usecase'inize bağlıdır. –

cevap

1

zaten aradığınız ne mevcut bazı taşlar vardır. Eğer içine baktın mı:

mevcut taşlar bir görünüşü atın: https://www.ruby-toolbox.com/categories/Active_Record_Versioning

Ben çok benzer bir şey için (daha önce acts_as_audited) denetlenen kullanıyorum: https://github.com/collectiveidea/audited

+0

Bu eklentilerin ihtiyacım olanı yapmadığını söylemek için daha sonra sorumu düzenleyeceğim. Tüm satırın değil, sütuna göre versiyon oluşturmak istiyorum. Bunu daha sonra daha iyi anlatacağım ve nasıl uygulanacağım. Ama cevap için teşekkürler. – Luccas

İlgili konular