Günümüzde tablolar (SQLserver içinde) arasında kısıtlamalar oluşturmak için herhangi bir neden var mı? Varsa ne zaman? Bölgemdeki uygulamaların çoğu nesne ilkeleri üzerine kuruludur ve tablolar isteğe bağlı olarak birleştirilir. Talep, uygulamadan gelen ihtiyaca dayanmaktadır. Basit bir arama için bir dizi kısıtlanmış tablo yüklemeyeceğim, bu da (eylemden sonra) birbirinden basit bir arama gerektiriyor.
EntityContext, Linq2Data, NHibernate gibi ORM araçları da kısıtlamaları kendi başlarına halleder, en azından hangi tabloların birbirine ihtiyacı olduğunu bilirsiniz. Sunucu içinde kısıtlamalar yapmak, aynı değişiklikleri iki kez yapmak (zorlamak) ile ilgilidir?
Bu genellikle karar için bir soru değildir, ancak bu veritabanı oldukça farklı tasarlanmıştır. Tasarım düzenli olarak iyi görünüyor, çoğunlukla uygulamalar tarafından kullanılan nesneleri yansıtıyor. Beni rahatsız eden şey, SQLserver içinde "kademeli değil" ile yapılandırılan tüm kısıtlamalar. Bu, yeni veritabanı sorgularını kodlarken "ara ve bul" oynamanız gerektiği anlamına gelir. Bazı durumlarda, tek bir silme işlemi yapmak için 10 düzeye kadar kesin sipariş düzeyi gerekir.
Bu beni şaşırtıyor ve bununla nasıl başa çıkacağımdan emin değilim.
Benim basit dünyamda, bu ortam kısıtlamaların amacını kaybetmesini sağlıyor. Tasarım bilgisi olmadan ana bilgisayarlardan veritabanına erişilirse Tamam.
Bu senaryoda nasıl davranırsınız?
Neden sadece db'den tüm kısıtlamaları kaldırmak ve uygulama düzeyinde tutmak değil?