¿Los elementos como claves externas, restricciones, valores predeterminados, etc. deben ser manejados por el sistema de administración de la base de datos (en este caso, MS SQL 2005) o la aplicación? He escuchado opiniones de ambas partes y, sinceramente, no estoy seguro de qué camino tomar.
Existe la posibilidad de que abarquemos múltiples servidores / bases de datos y no creo que las claves externas se puedan usar en servidores vinculados. Además de eso, hay algunas referencias circulares en el diseño de la base de datos que me impiden usarlo ON UPDATE CASCADE
en todo.
La base de datos es MS SQL 2005 (posiblemente 2008) y todas las interacciones con ella deben pasar por la aplicación.