¿Hay alguna razón para construir restricciones entre tablas (dentro del servidor SQL) hoy en día? ¿Si es así cuando? La mayoría de las aplicaciones en mi área se basan en principios de objetos y las tablas se unen bajo demanda. La demanda se basa en la necesidad de la aplicación. No cargaré un montón de tablas restringidas para una búsqueda simple, que a su vez (después de la acción) requiere una búsqueda simple.
Las herramientas ORM como EntityContext, Linq2Data, NHibernate también manejan las restricciones por sí mismas, al menos usted sabe qué tablas se necesitan entre sí. ¿Hacer restricciones dentro del servidor consiste en hacer (forzar) los mismos cambios dos veces?
Por lo general, esto no es una cuestión pendiente de decisión, pero esta base de datos está diseñada de manera bastante diferente. El diseño se ve bien, en su mayoría refleja los objetos utilizados por las aplicaciones. Lo que me preocupa son todas las restricciones configuradas dentro de SQLserver con "no en cascada". Lo que significa que debe jugar "buscar y encontrar" al codificar nuevas consultas de bases de datos. Algunos casos requieren hasta 10 niveles de un orden exacto para hacer una sola eliminación.
Esto me sorprende y no estoy seguro de cómo manejarlo.
En mi mundo simple, esa configuración hace que las restricciones pierdan la mayor parte del propósito. OK si se accedió a la base de datos desde hosts sin conocimiento del diseño.
¿Cómo actuarías en este escenario?
¿Por qué no simplemente eliminar todas las restricciones de db y mantenerlas en el nivel de aplicación?