Apakah ada alasan untuk membangun batasan antar tabel (di dalam SQLserver) saat ini? Jika ya, kapan? Sebagian besar aplikasi di daerah saya dibangun berdasarkan prinsip-prinsip objek dan tabel digabungkan sesuai permintaan. Permintaan didasarkan pada kebutuhan dari aplikasi. Saya tidak akan memuat banyak tabel terbatas untuk pencarian sederhana, yang pada gilirannya (setelah tindakan) saling membutuhkan pencarian sederhana.
Alat ORM seperti EntityContext, Linq2Data, NHibernate juga menangani kendala sendiri, setidaknya Anda tahu tabel apa yang saling membutuhkan. Melakukan kendala di dalam server hanya tentang membuat (memaksa) perubahan yang sama dua kali?
Ini biasanya bukan pertanyaan untuk keputusan, tetapi database ini dirancang sangat berbeda. Desainnya terlihat biasa baik, sebagian besar mencerminkan objek yang digunakan oleh aplikasi. Yang mengganggu saya adalah semua kendala dikonfigurasi di dalam SQLserver dengan "not cascade". Yang berarti bahwa Anda harus bermain "mencari dan menemukan" ketika mengkode permintaan basis data baru. Beberapa case membutuhkan hingga 10 level perintah yang tepat untuk membuat satu penghapusan.
Ini mengejutkan saya dan saya tidak yakin bagaimana menanganinya.
Dalam dunia saya yang sederhana, pengaturan itu membuat kendala kehilangan sebagian besar tujuan. OK jika database diakses dari host tanpa pengetahuan desain.
Bagaimana Anda akan bertindak dalam skenario ini?
Mengapa tidak menghapus semua batasan dari db dan menyimpannya di level aplikasi?