2012-01-19 16 views
7

Uno degli svantaggi che le persone puntano a utilizzare le chiavi esterne in un database relazionale è il sovraccarico di assicurarsi che la tabella padre esista prima di eseguire qualsiasi operazione di inserimento. (Example). Man mano che il database e l'operazione aumentano, questo effetto viene amplificato. Qualcuno sa se i grandi siti sul web li usano allora? Se è così, come fanno a evitare quel sovraccarico? Altrimenti, man mano che il tuo team di sviluppo si ingrandisce, sembra che ciò possa causare un sacco di potenziali bug/conflitti/problemi di comunicazione/righe orfane.I grandi sistemi usano chiavi esterne nei loro database?

Qualche idea?

+0

Overhead vs Garantire la validità dei dati - Unforutnately un po 'soggettivo, ma sarà interessante vedere quali risposte si ottiene. Però penserei che sia più una CW che una domanda. – Andrew

+2

Molti "siti di grandi dimensioni sul Web" non utilizzano affatto i database relazionali. – Magnus

+0

@Magnus - Umm, sì, lo fanno. Non tutto, probabilmente non per il contenuto HTML, ma per i dati transazionali che spesso fanno. – MatBailie

risposta

0

Questo dipende dalla definizione di "sito grande": se per esempio la banca online Citigroup è un "sito grande", immagino lo facciano.

Ciò che intendo con questo esempio è che l'uso (o non uso) di chiavi esterne, l'accesso solo da stored procedure ecc., Dipende dai requisiti della logica di business (e forse del suo quadro legale) più di solo sugli aspetti tecnici.

+0

Per chiarire, la mia enfasi è su un sito Web ipotetico che ha un'enorme quantità di dati che scrivono e leggono da un RDBMS. Citigroup sarebbe un "sito grande" nella misura in cui questi costi generali FK li avrebbero effettivamente influenzati. Forse Twitter o Wordpress sono esempi migliori. – carlbenson

+1

Twitter non dovrebbe (e AFAIK non lo fa) utilizzare un RDBMS e quindi nessuna chiave esterna, Wordpress non usa le chiavi esterne - esattamente il mio argomento: la logica aziendale e il quadro legale non lo richiedono. Citibank li userà, anche se le spese generali li riguardano, ma la logica aziendale e legale lo richiedono. –

1

Io lavoro per una telecomunicazione, sì lo fanno, spesso il costo della FK è troppo piccolo rispetto alla gravità di uno dei principali incidenti (ore di tempo perse nelle indagini, patching ...) che possono essere causati da incidenti dovuti alla mancanza di Controllo FK.