Чи є сьогодні причина для побудови обмежень між таблицями (всередині SQLserver)? Якщо так, коли? Більшість застосувань у моїй області побудовані на об'єктних принципах, а таблиці з'єднуються на вимогу. Попит ґрунтується на потребі програми. Я не завантажую купу обмежених таблиць для простого пошуку, які в свою чергу (після дії) вимагають одна від одної простого пошуку.
Інструменти ORM, такі як EntityContext, Linq2Data, NHibernate, також вирішують обмеження самостійно, принаймні ви знаєте, які таблиці потрібні один одному. Виконання обмежень всередині сервера полягає лише в тому, щоб двічі змінити (примусити)?
Зазвичай це не питання для вирішення, але ця база даних розроблена зовсім по-іншому. Дизайн виглядає регулярно добре, в основному це дзеркальні предмети, які використовуються додатками. Мене турбують всі обмеження, налаштовані всередині SQLserver з "не каскадом". Що означає, що вам потрібно грати "шукати і знаходити" при кодуванні нових запитів до бази даних. Деякі випадки вимагають до 10 рівнів точного порядку, щоб зробити одне видалення.
Це мене дивує, і я не впевнений, як з цим впоратися.
У моєму простому світі це встановлення обмежує втрату більшості мети. Гаразд, якщо до бази даних зверталися хости без знання дизайну.
Як би ви діяли в цьому сценарії?
Чому б просто не видалити всі обмеження з db і тримати їх на рівні програми?