Muhtemelen dar görüşlüyüm, ancak bir yabancı anahtar kısıtlaması yaratırsam ve bir satır güncellenir veya silinirse, alt tablonun sütunu NULL olarak ayarlanırsa bu bağlantıyı kaybederim.
Bu yetim satırları kasıtlı olarak tutmanın amacı nedir?
Muhtemelen dar görüşlüyüm, ancak bir yabancı anahtar kısıtlaması yaratırsam ve bir satır güncellenir veya silinirse, alt tablonun sütunu NULL olarak ayarlanırsa bu bağlantıyı kaybederim.
Bu yetim satırları kasıtlı olarak tutmanın amacı nedir?
Yanıtlar:
set nullYararlı olsun veya olmasın null, belirli bağlamda ne demek istediğinize bağlıdır - nullIMO çevresindeki tüm karışıklık ve görüşler ile mantıklı yaklaşım DBA'nın
Bu kurallarla, aşağıdaki kullanım durumunu göz önünde bulundurun:
nullBağımsız bir dükkanı (yani zincirin bir parçası olmayan) temsil etmeyi tanımladınızBu durumda, on delete set nullmantıklı. Bu iş kurallarını modellemenin başka yolları da vardır, ancak bu en basit olanıdır ve gerçek dünyada önemsediğiniz gerçeklere tam olarak uyuyorsa, mükemmel bir şekilde tamamlanmasını öneririm
Düşünebileceğim kullanım vakalarının çoğu genellikle "Farklı bir şey yapabiliriz ama bunun yerine bunu yapmak gibi hissettik" şeklindedir.
ownerBir şirketteki sorun izleme sistemindeki bir hata için bir alan düşünün . John istifa ederse, elbette tüm sorunları hesabı kaldırıldığında silinmemelidir. O zaman bile, bazı veritabanları SET DEFAULTbir eyleme izin verir (veya aynı görevi gerçekleştiren bir tetikleyiciye sahip olmak) ve bir Nobodyçalışanın sorunların varsayılan sahibi olması bir seçenek olabilir. Veya disabledkayıtlarını silmek yerine John için bir alanımız olabilir .
RESTRICT, başka bir nedenden ötürü suçu eski bir çalışana yönlendirmek için delme ( ) ' ye izin vermemeyi tartışırım !