Restricciones de clave externa polimórfica: un enfoque versátil
La restricción de clave externa convencional establece un vínculo directo entre dos tablas especificadas. Sin embargo, ¿qué sucede si necesita una relación polimórfica donde una columna hace referencia a una de varias tablas principales posibles?
¿Es posible una clave externa para varias tablas?
Desafortunadamente, la respuesta es negativa. Una restricción de clave externa solo puede hacer referencia a una única tabla principal. Esta limitación surge de la necesidad de integridad y coherencia de los datos en los sistemas de bases de datos.
Consideraciones prácticas
A pesar de la limitación inherente, existen enfoques prácticos que emulan el comportamiento de un Clave externa para varias tablas:
Ejemplos en MySQL y PostgreSQL
En MySQL, lo siguiente La declaración crea una tabla de unión:
CREATE TABLE union_table AS
SELECT * FROM subordinates
UNION ALL
SELECT * FROM products;
La restricción de clave externa en la tabla secundaria sería:
ALTER TABLE images
ADD FOREIGN KEY (person_id) REFERENCES union_table(id);
En PostgreSQL, se utiliza un enfoque similar:
CREATE TABLE union_table AS
SELECT * FROM subordinates
UNION ALL
SELECT * FROM products;
La restricción de clave externa se convierte en:
ALTER TABLE images
ADD FOREIGN KEY (person_id) REFERENCES union_table(id);
Conclusión
Si bien una clave externa directa para múltiples tablas no es factible, estrategias alternativas permiten una clave externa polimórfica relación clave en los sistemas de bases de datos SQL. Estas estrategias preservan la integridad de los datos y al mismo tiempo brindan la flexibilidad de acomodar múltiples tablas principales.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3