2012-01-19 15 views
7

Una de las desventajas que las personas señalan al usar claves foráneas en una base de datos relacional es la sobrecarga de asegurarse de que la tabla principal exista antes de realizar cualquier operación de inserción. (Example). A medida que su base de datos y su operación crecen, este efecto se amplifica. ¿Alguien sabe si los sitios grandes en la web los usan entonces? Si es así, ¿cómo se las arreglan para evitar esos gastos adicionales? De lo contrario, a medida que su equipo de desarrollo se haga más grande, parece que eso podría causar una gran cantidad de posibles errores/conflictos/falta de comunicación/filas huérfanas.¿Los sistemas grandes usan claves foráneas en sus bases de datos?

¿Alguna idea?

+0

Overhead vs Garantizar la validez de los datos: sin dudas un poco subjetivo, pero será interesante ver qué respuestas obtiene. Sin embargo, yo pensaba que era más una CW que una pregunta. – Andrew

+2

Muchos "sitios grandes en la web" no usan bases de datos relacionales en absoluto. – Magnus

+0

@Magnus - Umm, sí lo hacen. No todos, probablemente no para contenido HTML, sino para datos transaccionales que a menudo hacen. – MatBailie

Respuesta

0

Esto depende de su definición de "sitio grande": si, por ejemplo, el banco en línea de Citigroup es un "sitio grande", creo que sí.

Lo que quiero decir con este ejemplo es que el uso (o no uso) de claves externas, el acceso por procedimientos almacenados solo, etc., depende de los requisitos de la lógica comercial (y tal vez su marco legal) más que en tecnicismos solamente.

+0

Para aclarar, mi énfasis está en un sitio web hipotético que tiene una gran cantidad de datos de escritura y lectura de un RDBMS. Citigroup sería un "sitio grande" en la medida en que estos costos fijos FK en realidad los afectarían. Tal vez Twitter o Wordpress son mejores ejemplos. – carlbenson

+1

Twitter no debe (y AFAIK no) usa un RDBMS y, por lo tanto, no tiene claves externas, Wordpress no utiliza claves externas, exactamente mi argumento: la lógica de negocio y el marco legal no lo requieren. Citibank los usará, incluso si la sobrecarga los afecta, pero la lógica comercial y legal lo requieren. –

1

Trabajo para una telecomunicación, sí lo hacen, a menudo el costo de FK es demasiado pequeño en comparación con la gravedad de uno de los principales incidentes (horas de investigación perdidas, parches ...) que pueden ser causados ​​por accidentes debido a la falta de FK comprobación.

Cuestiones relacionadas