C'è qualche motivo per costruire vincoli tra le tabelle (all'interno di SQLserver) al giorno d'oggi? In tal caso, quando? La maggior parte delle applicazioni nella mia area sono basate su principi di oggetti e le tabelle sono unite su richiesta. La domanda si basa sulla necessità dell'applicazione. Non caricherò un sacco di tabelle vincolate per una semplice ricerca, che a sua volta (dopo l'azione) richiedono una semplice ricerca reciproca.
Strumenti ORM come EntityContext, Linq2Data, NHibernate gestiscono anche i vincoli da soli, almeno sai quali tabelle hanno bisogno l'una dell'altra. Fare vincoli all'interno del server significa solo fare (forzare) le stesse modifiche due volte?
Di solito questa non è una domanda da prendere, ma questo database è progettato in modo abbastanza diverso. Il design sembra regolare, rispecchiando principalmente gli oggetti utilizzati dalle applicazioni. Ciò che mi disturba sono tutti i vincoli configurati all'interno di SQLserver con "non a cascata". Ciò significa che devi giocare a "cerca e trova" durante la codifica di nuove query di database. Alcuni casi richiedono fino a 10 livelli di un ordine esatto per effettuare una singola eliminazione.
Questo mi sorprende e non sono sicuro di come gestirlo.
Nel mio mondo semplice, questa impostazione fa perdere i vincoli alla maggior parte dello scopo. OK se si accede al database dagli host senza conoscere il progetto.
Come agiresti in questo scenario?
Perché non rimuovere tutti i vincoli da db e tenerli a livello di applicazione?