Ben durumu sütunu olduğunu ilk açıklamak zorunda değil bir durumunu yansıtacak şekilde tasarlanan gerçek dünya öğesi tablosunda kaydındaki (satırındaki) tarafından temsil etti. Aksine, kaydın kendisinin durumunu göstermesi amaçlanmıştır.
Etkin / Etkin değil veya Onaylanmış / Silinmiş / Kilitli / Beklemede / Reddedilmiş vb. Gibi karmaşık olabilir. Durum, bir boole / kısa tamsayı sütununda veya tek karakterli bir sütunda, true
/ 1
= Etkin veya A
= Onaylandı.
Temel fikir, uygulamada bir geri dönüşüm kutusu / çöp benzeri kurtarma desteğine sahip olmak (ve veritabanında simüle etmek). Bir kullanıcının kayıtları "silmesine" izin verebilecek bir ön uç GUI veya başka bir arabirim varsa, tablodaki kaydı gerçekten silmez, ancak kayıt durumunu Etkin Değil veya Silindi olarak değiştirir. Arabirim kayıtları aldığında, yalnızca durumun Etkin veya Onaylı olduğu koşuluyla eşleşen kayıtları alır.
Kullanıcı bir hata yaparsa ve "silinen" kaydın (kullanıcı perspektifinde) kurtarılması gerekiyorsa, bir DBA kaydı kolayca Aktif veya Onaylı hale getirebilir; bu da yedekleri aramaktan ve umarım orijinal kaydı bulmaktan daha iyi olur Orada. Veya arayüzün kendisi, kullanıcının silinen kayıtları ayrı bir görünümde görüntülemesine ve gerektiğinde geri yüklemesine veya hatta kalıcı olarak silmesine (gerçek kaydı silme) izin verebilir.
Sorularım:
- Bu iyi bir uygulama mı yoksa kötü bir uygulama mı?
- Verilerin normalleştirilmesini etkiler mi?
- Potansiyel tuzaklar nelerdir?
- Aynı hedefe ulaşmak için alternatif bir yöntem var mı? (notu gör)
- Veritabanında yalnızca belirli bir durum için veriler üzerinde benzersiz kısıtlamalar uygulanmasını nasıl sağlayabilirsiniz (ancak diğer durumlar için herhangi bir sayıda kopyaya izin verebilirsiniz)?
- Neden veritabanları yerel olarak "geri dönüşüm kutusu" benzeri bir özellik veya tablo izleme / kurtarma sağlamaz, böylece arabirimlerin endişelenmeden gerçek kayıtları silmesine izin verebiliriz?
Not: Ayrı bir geçmiş tablosu tutmayı okudum, ancak depolama ve tetikleyiciler oluşturmak ve tetikleyicileri izlenen tablonun şemasıyla güncel tutmak zorunda olmaktan daha kötü görünüyor.