SORU
27 Kasım 2008, PERŞEMBE


Nasıl bir veritabanında bir kaydın sürüm kontrolü için

Hadi veritabanında bir kayıt var ve admin hem normal kullanıcılar güncellemeleri yapabilir ki.

Olası bir önceki revizyon için bir kaydı geri almak için bu yüzden bu tabloda kontrol her değişiklik sürümü nasıl herkes iyi bir yaklaşım/mimarlık.

CEVAP
27 Kasım 2008, PERŞEMBE


Hadi yöneticiler ve kullanıcılar güncelleştirme FOO bir tablo olduğunu varsayalım. Çoğu zaman FOO tabloya karşı sorgu yazabilirsiniz. Mutlu günler.

Sonra, FOO_HISTORY bir tablo oluşturmak istiyorum. Bu FOO tablonun tüm sütunları var. Birincil anahtar aynı RevisionNumber bir sütun artı olarak FOO. FOO FOO_HISTORY yabancı bir anahtar var. Ayrıca sütun kullanıcı Kimliği ve RevisionDate gibi revizyon ile ilgili ekleyebilirsiniz. Artan *_HISTORY tüm masalara moda RevisionNumbers (örn. doldurmak Oracle sırası veya başka türlü). Yalnızca bir değişiklik vardı kullanmadığı bir saniye içinde. yani. birincil anahtarı RevisionDate koymayın.

Şimdi, her şey sen güncelleme yapmak hemen önce FOO, güncelleme FOO_HISTORY eski değerler Ekle. Bazı temel seviyede bu programcılar değil tasarımınıza yanlışlıkla Bayan bu adım, sen de öyle.

Eğer FOO bir satır silmek istiyorsanız size bazı seçenekler var. Çağlayan ve tüm geçmişi silin ya da işaretleme mantıklı silmek silinmiş gibi FOO gerçekleştirin.

Bu çözüm bazen tarihindeki geçerli değerler ve sadece büyük ölçüde ilgilendi zaman iyidir. Eğer her zaman geçmişi gerekiyorsa o zaman etkili başlangıç koymak ve bitiş tarihlerini ve FOO intself tüm kayıtları tutabilirsiniz. Her sorgu sonra bu tarihleri kontrol etmesi gerekecek.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • mobilenet.cz

    mobilenet.cz

    26 NİSAN 2008
  • vgeller1

    vgeller1

    22 Kasım 2009