¿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?
Respuesta
"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--
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.
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.
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.
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:
- Asegúrese de la validación y la integridad de los datos
- 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".
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
- 1. ¿Debo usar claves externas?
- 2. Cómo usar claves externas en SQL Buddy?
- 3. ¿Debería Hibernate ser capaz de manejar claves externas superpuestas?
- 4. Django: claves externas distintas
- 5. descartar claves externas duplicadas
- 6. phpmyadmin y claves externas
- 7. ¿Cómo funcionan las claves externas?
- 8. Consulta para encontrar claves externas
- 9. ¿Necesito crear índices en claves externas?
- 10. Cómo script de índices, claves, claves externas en SQL Server
- 11. Conceptos básicos de claves externas en MySQL?
- 12. Django único Juntos (con claves externas)
- 13. ¿Las claves externas son realmente necesarias en el diseño de una base de datos?
- 14. y filtros de claves externas de Django
- 15. Particionar tablas mySQL que tiene claves externas?
- 16. XSD DataSets e ignorar claves externas
- 17. PostgreSQL: ¿Cómo indexar todas las claves externas?
- 18. TDD con HSQLDB - eliminación de claves externas
- 19. ¿Qué son las claves externas de MySQL?
- 20. Las claves externas y NULL en MySQL
- 21. MySQL Error 150 - Las claves externas
- 22. MySQL terminología "restricciones" vs diferencia "claves externas"?
- 23. ¿Cómo usar fuentes externas?
- 24. ¿La introducción de claves externas a MySQL reduce el rendimiento?
- 25. ¿Se prefiere cadena o int para claves externas?
- 26. Cómo probar modelos en Django con claves externas
- 27. ¿Por qué no funcionan mis claves externas sqlite3?
- 28. Dependencias circulares en claves externas: úsala o evítala?
- 29. Usar fuentes externas en android
- 30. Entender las relaciones y las claves externas en Mongoose
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