"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Puede una clave externa hacer referencia a varias tablas en asociaciones polimórficas?

¿Puede una clave externa hacer referencia a varias tablas en asociaciones polimórficas?

Publicado el 2024-11-16
Navegar:273

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

Claves externas polimórficas: ¿puede una clave externa hacer referencia a varias tablas?

El concepto de claves externas en bases de datos relacionales generalmente implica especificar el destino exacto tabla a la que debe apuntar una columna de referencia. Sin embargo, cuando se trata de asociaciones polimórficas, donde una tabla tiene una relación con varias otras tablas de un conjunto, surge la pregunta: ¿es posible tener una clave externa que pueda hacer referencia a cualquiera de esas tablas?

La respuesta: No

Tanto en MySQL como en PostgreSQL, una restricción de clave externa solo puede hacer referencia a una única tabla principal. Esta restricción garantiza la integridad de los datos al mantener una relación clara entre las filas de referencia y las filas a las que se hace referencia en la tabla principal.

Alternativas para asociaciones polimórficas

Dado que una clave externa no puede apunta directamente a varias tablas, se necesitan soluciones alternativas para modelar asociaciones polimórficas:

  • Unido Herencia: Cree una tabla única que contenga todas las columnas de las tablas secundarias y una columna discriminadora para identificar a qué tabla pertenece cada fila.
  • Jerarquía de tabla por clase: Cree una tabla separada tablas para cada tabla secundaria y establecer relaciones entre ellas a través de la herencia.
  • Tipos de unión: Utilice una sola columna que pueda acomodar valores de datos de diferentes dominios, permitiéndole hacer referencia a varias tablas secundarias.

Recursos adicionales

Para obtener más información sobre las asociaciones polimórficas y sus soluciones, consulte los siguientes recursos:

  • Modelos prácticos orientados a objetos en SQL
  • Antipatrones SQL, Volumen 1: Evitar los errores de las bases de datos Programación
Declaración de liberación Este artículo se reimprime en: 1729692085 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

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