Elementi come chiavi esterne, vincoli, valori predefiniti e così via devono essere gestiti dal sistema di gestione del database (in questo caso, MS SQL 2005) o dall'applicazione? Ho sentito opinioni da entrambe le parti e onestamente non sono sicuro di quale strada fare.
È possibile che si verifichino più server / database e non penso che le chiavi esterne possano essere utilizzate su server collegati. Oltre a ciò, ci sono alcuni riferimenti circolari nella progettazione del database che mi impediscono di utilizzare ON UPDATE CASCADE
tutto.
Il database è MS SQL 2005 (possibilmente 2008) e tutte le interazioni con esso dovrebbero passare attraverso l'applicazione.