2012-01-06 34 views
6

¿Debo usar claves externas en todas las tablas relacionadas o no debería? Si debería usar, ¿por qué?¿Debería realmente usar claves externas?

+0

posible duplicado de [¿Son realmente necesarias las claves externas en un diseño de base de datos?] (Http://stackoverflow.com/questions/18717/are-foreign-keys-really-necessary-in-a-database-design) – cHao

Respuesta

6

"Todas las tablas relacionadas" no siempre son claras, por lo que no es una situación obvia. Puede haber tablas que tengan una columna común pero que nunca se vean entre sí.

Sin embargo, es útil para evitar errores que escapan de sus defensas principales y permiten ingresar datos que no son fáciles de rastrear.

No ayudan a que las consultas sean más eficientes si tiene los índices adecuados, y una buena aplicación filtrará la información suficiente para que nunca se necesiten. Pero los errores suceden, y son una línea de defensa barata.

Si solo te sientes cómodo con el diseño de bases de datos, no es algo de lo que te preocupes y refines en gran detalle una vez que tengas las relaciones básicas entre padres e hijos.

He aquí algunos background--

What's wrong with foreign keys?

4

Sí, deberías. Las teclas extranjeras son solo restricciones que te ayudan a establecer relaciones y asegurarte de tener la información correcta en tu base de datos. Debes utilizarlas para evitar la entrada incorrecta de datos de cualquier tipo.

6

Deberías. Hay tres puntos principales:

  • En función de su sistema de base de datos, se puede obtener un mejor rendimiento
  • Las claves externas aseguran la integridad de los datos, por ejemplo, puede ayudar a evitar los registros huérfanos etc
  • Ellos de manera explícita para documentar la estructura de su base de datos, que puede ser utilizado por las herramientas de visualización, generación de código, etc.
6

Sí. Pero en niveles moderados. Esto ayuda cuando estás consultando datos. Ayuda a indexar sus datos, por lo que las consultas más rápidas. También ayuda a mantener las relaciones entre las entidades.

5

El uso de claves externas es una de las bases (si no el único), el concepto principal de bases de datos relacionales. Usted, por supuesto, debe usar claves externas cuando sea necesario. Porque esto ayuda a:

  1. Asegúrese de la validación y la integridad de los datos
  2. ahorrar mucho espacio extra

El primer medio de uno en lugar de añadir un valor manualmente a un campo que se va a repetirse para otros registros que acaba de elegir de lo que tiene en el relacionado, la tabla de claves principales. Si intenta ingresar algo que no existe como clave principal en la otra tabla, será rechazado (en algunas bases de datos puede modificar este comportamiento).

La segunda significa que no tiene que escribir los "Estados Unidos de América" ​​cada vez, lo que tomaría mucho más espacio que simplemente escribir la identificación de los "Estados Unidos de América".

1

En este momento hay un movimiento cada vez mayor de bases de datos relacionales basadas en claves foráneas. Los sistemas de bases de datos documentales como MongoDB se están volviendo mucho más populares.Esto se debe en gran medida a que el mundo se está distribuyendo mucho más con la nube.

Esto significa que en algún momento no es razonable ni eficiente asumir una coherencia de datos inmediata.

Lea en base de datos NoSQL, MongoDB CouchDB y consistencia si lo desea.

Es un poco una cosa extraña para nuestra mente relacionales capacitados para comprender, pero una gran cantidad de soluciones web a gran escala

Cuestiones relacionadas