Conozco el propósito de "Aplicar restricción de clave externa" en RDBMS. ¿Pero hay algún beneficio cuando se establece en "NO"?Servidor Sql: ¿Cuál es la ventaja de utilizar "Aplicar restricción de clave externa" cuando está configurado en "NO"?
Respuesta
En la producción normal, esta configuración debe nunca establecerse en NO
.
Pero: cuando está desarrollando, o reestructurando una base de datos, o cuando lo hace, p. una gran carga masiva de datos que necesitará "desinfectar" (limpiar), entonces puede tener sentido desactivar restricciones de clave externa para permitir que los datos "no válidos" se carguen en una tabla. Por supuesto, como dije, no debes mantener esa configuración apagada durante un largo período de tiempo, debes proceder a limpiar los datos, eliminar esas filas que violan la restricción FK o actualizar sus valores. para que coincidan con una fila principal.
Así que de nuevo: en el modo de producción "normal", esta configuración nunca debería ser NO
, pero para tareas específicas, podría ayudar a hacer el trabajo más fácilmente. Úselo con precaución y siempre vuelva a activar las restricciones FK tan pronto como pueda.
Gracias por su nota, pero hay circunstancias en las que ingresamos datos a una columna para decir, por ejemplo, todos los datos predefinidos. Quiero decir, si los datos válidos son 1,2 y 3, entonces para decir todos ponemos -1 en la columna. En estas situaciones, debemos establecer "Aplicar restricción de clave externa" a NO en el diagrama. ¿derecho? Entonces, ¿es realmente necesario crear una relación? – odiseh
@odiseh: No. En su caso, sería mejor eliminar la clave foránea ya que no sirve para nada. En cambio, podría crear una restricción CHECK para validar los valores de los datos. – sqlvogel
+1 por decirlo como es. Veo este entorno abusado todo el tiempo en algunas compañías con las que contrato. Siempre conduce a problemas. Añadiría que a veces lo uso como un paso intermedio cuando no existe una clave externa que debería existir y quiero agregarlo. A veces no estoy seguro de que todas las aplicaciones de referencia estén haciendo sus operaciones en el orden correcto, y esto me permite definir la relación de inmediato, probar las aplicaciones en cuestión (o buscar su código) y luego activar la aplicación. –
No en el uso diario, por lo que yo sé. Las veces que he forzado el uso de claves foráneas por un tiempo son cuando hay problemas con los datos y su reparación queda oculta por las verificaciones de relaciones.
Durante las operaciones masivas, las comprobaciones de restricciones se ignoran temporalmente para aumentar el rendimiento.
- 1. SQLAlchemy: no aplicar la restricción de clave externa en una relación
- 2. Restricción de comprobación de clave externa de T-SQL
- 3. diferencias entre "clave externa" y "restricción de clave externa"
- 4. SQL Server 2005: Restricción de clave externa anulable
- 5. ¿Cómo elimino una restricción de clave externa solo si existe en el servidor sql?
- 6. ¿Cómo eliminar la restricción de clave externa en el servidor sql?
- 7. ¿Cuál es la ventaja de utilizar NginX para Node.js?
- 8. falso de restricción de clave externa fall
- 9. ¿Cuál es la ventaja de utilizar una columna INCLUDE con un índice de SQL Server?
- 10. ¿Cuál es la diferencia entre cheque y clave externa?
- 11. MySQL 5.5 restricción de clave externa falla cuando existe una clave externa
- 12. ¿la clave principal siempre está indexada en el servidor sql?
- 13. ¿Cuál es la ventaja de utilizar la codificación Base64?
- 14. Diferencia entre restricción de clave externa y referencias en Rails
- 15. Error del servidor SQL: "%" no es una restricción. No se pudo eliminar la restricción. Ver errores anteriores
- 16. Restricción de clave externa MySQL - Columna entera
- 17. Servidor SQL: ver todas las dependencias de la clave externa
- 18. ¿cuál es la ventaja de utilizar "importación estática"?
- 19. Clave principal de actualización del Servidor SQL que también es una clave externa en dos tablas
- 20. ¿Cómo elimino una restricción de clave externa en SQLAlchemy?
- 21. SQL restricción servidor expresión regular
- 22. Cuándo utilizar una clave externa en MySQL
- 23. clave externa condicional en SQL
- 24. ¿Cuál es la ventaja de utilizar el almacén de sesión predeterminado sin conexión?
- 25. Compatibilidad con restricción de clave externa en Rails
- 26. Clave externa de tabla SQL que es parte de una clave primaria compuesta
- 27. ¿Deshabilitar restricción de clave externa en una tabla?
- 28. ¿Cuál es el propósito de la restricción nombrar
- 29. tabla MySQL añadir restricción de clave externa conduce a errores
- 30. Pros y contras de aplicar programáticamente una clave externa que en la base de datos
Cuando tiene dos claves primarias iguales en dos tablas y tiene que establecer una relación de clave externa, entonces tiene que establecer "Aplicar la restricción de clave externa" a "No". Esto es bastante confuso, por lo que le doy la url de youtube a continuación, será claro después del final de este video. https://www.youtube.com/watch?v=H7uGGg1BQ2Y –