Ciò causa così tanti problemi in termini di sviluppo semplicemente lasciando che il database imponga la chiave esterna. Soprattutto durante il test unitario non posso rilasciare la tabella a causa di vincoli di chiave esterna, ho bisogno di creare una tabella in un ordine tale che l'avviso di vincolo di chiave esterna non venga attivato. In realtà non vedo troppo il punto di lasciare che il database faccia rispettare i vincoli delle chiavi esterne. Se l'applicazione è stata progettata correttamente, non dovrebbe esserci alcuna manipolazione manuale del database oltre alle query selezionate. Voglio solo assicurarmi che non mi stia scavando in una buca non avendo vincoli di chiavi estranee nel database e lasciandolo solo alla responsabilità dell'applicazione. Mi sto perdendo qualcosa?Pro e contro di applicazione della chiave esterna a livello di programmazione rispetto al database
P.S. i miei test di unità reali (non quelli che usano il mocking) elimineranno le tabelle esistenti se la struttura dell'oggetto di dominio sottostante è stata modificata.
Stavo pensando di aggiungere una risposta ma tu hai detto quello che doveva essere detto così i voti si ottiene. Se agli sviluppatori manca la competenza tecnica per scrivere sia gli script di set up che quelli di reset per preparare le precondizioni di test, allora non dovrebbero operare direttamente sul database. In questi casi un DBA dovrebbe preparare tali script. Ma abbandonare l'integrità referenziale perché gli sviluppatori vogliono essere pigri? Non c'è modo! –