Veri katmanı kısıtlamalar yoluyla veri tutarlılığını zorlamak olması, veri tutarlı kalır ve uygulama içinde ucuz zamanı hata kontrolü sağlar sağlamak için yardımcı olur.
Eğer kısıtlamaları küçük / olmayan misyon kritik sistemine sahip ya da size sistemin kalitesini artırmak için huge fırsatı geçiyoruz değerli değildir düşünüyorsanız. Bu sade olamaz.
Seçimler şunlardır: Farklı bir RDBMS'yi seçerek, kendi meta sisteminizi yeniden icat veya elle kısıtlamaları yönetmek. Bir meta veri sistemi olmadan sorguları Manuel yönetimi hızla korumak ve şema / sistem karmaşıklığı büyür ve unecessarily gelişen bir şema zorlaştırıyor gibi düzgün denetlemek olanaksız hale gelir.
Benim öneri farklı bir RDBMS'yi seçmektir.
Tutarlılık denetimi düşündüğünüzden çok daha zordur. Örneğin MySQL karşı kontrol ediyoruz değerler başka bir işlem kapsamında aynı değerler olmayabilir demektir işlem okuma tutarlılığı kullanır. Eşzamanlı erişim için Tutarlılık scemantics veri katmanı doğrudan bağlı değilse doğru almak çok çok zordur.
Tüm söyledi ve hatta elle kontrol koymak çaba mütevazı bir miktarda, yapıldığında, sonuç büyük olasılıkla hala dikkate başarısız ya da oluşturan bir hata işledikleri köşe durumlarda üzerinden bir kamyon sürücü mümkün olacaktır olmasıdır.
Lütfen NOT NULL soru üzerine ... bariz veri alanı gereksinimleri iyi bir başlangıç noktası vardır. Burada sütun nullability tanımlarken dikkat edilmesi gereken diğer bir kaç şey vardır.
Bu sorguları çok yararlı yazılı bir garanti sağlar. Çeşitli durum boşlara izin eğer kabul edilemez bir NULL değeri ayrı bir tablo satırının olmayan bir maç göstermek için NULL koşulları kullanabilirsiniz katıldı. (NULL izin verilirse, bir maç satır maç veya satır yaptım maç ama sütun değeri null değil ya anlamına gelebilir.)
NOT NULL kullanımı da eşleşen değerleri basit sorgular için kurallar tanımlamak yardımcı olur. Eğer diyemem yana "değer1 = value2 ZAMAN" değer1 ve value2 hem değerlendirmenin NULL sonucu olup olmadığını hala yanlıştır.