Gli 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 ascoltato le opinioni di entrambe le parti e onestamente non sono sicuro di quale direzione andare.
C'è una possibilità che copriremo più server / database e non credo che le chiavi esterne possano essere utilizzate su server collegati. In aggiunta a ciò, ci sono alcuni riferimenti circolari nel design del database che mi impediscono di usare ON UPDATE CASCADE
su tutto.
Il database è MS SQL 2005 (probabilmente 2008) e tutte le interazioni con esso dovrebbero passare attraverso l'applicazione.