Qual è il vantaggio della definizione di una chiave esterna quando si lavora con un framework MVC che gestisce la relazione?quali sono i vantaggi della definizione di una chiave esterna
Sto utilizzando un database relazionale con un framework che consente definizioni di modelli con relazioni. Poiché le chiavi esterne vengono definite tramite i modelli, sembra che le chiavi esterne siano ridondanti. Quando si tratta di gestire il database di un'applicazione in fase di sviluppo, la modifica/eliminazione di tabelle che utilizzano chiavi esterne è una seccatura.
C'è qualche vantaggio nell'usare chiavi esterne che sto abbandonando completamente?
Le relazioni con le chiavi esterne rafforzano l'integrità dei dati a livello di dati, riducendo quindi i dati non validi che entrano nel sistema; no, non proprio. Per esempio, se tu avessi una tabella di persone con una relazione FK con la tabella di genere, uno sviluppatore potrebbe inserire un record in una persona con un genere di "bambini". Ora, potresti non interessartene, ma se costruisci la logica su voci valide e ti aspetti solo maschio/femmina, allora ... avrai un problema. Se si desidera decodificare il DB per ottenere un ERD, si avranno anche problemi. e impalcature e altre tecnologie si relazionano a questo livello di design ... – xQbert
Molto correlato: [Perché le chiavi esterne sono più utilizzate in teoria che in pratica?] (http://stackoverflow.com/questions/1876013/why-are-foreign -keys-more-used-in-theory-than-in-practice) –
Abbiamo avuto uno scenario simile in un posto in cui lavoravo: una app non aveva chiavi esterne perché l'ORM gestiva tutte queste cose ecc. Un giorno molto un cliente importante ha scoperto una significativa perdita di dati che è stata alla fine ricondotta a un bug nell'ORM. Molto dannoso per la relazione, incolpare lo sviluppatore ORM non aiuta. Le chiavi esterne sono state aggiunte molto presto! – onedaywhen