Tratamiento de claves externas para varias tablas
Tiene tres tablas: regiones, países y estados. Los países y estados pueden pertenecer a regiones, formando una estructura jerárquica. Ahora, desea crear una tabla "popular_areas" con las columnas "region_id" y "popular_place_id" y establecer una relación de clave externa entre "popular_place_id" y países o estados basándose en una columna "popular_place_type".
Esto Este escenario presenta un desafío porque las restricciones de clave externa de SQL generalmente hacen referencia a una única tabla de destino. Sin embargo, existe un concepto conocido como Asociaciones polimórficas en el diseño de bases de datos que intenta abordar este problema.
Asociaciones polimórficas: unir varias tablas con un supertipo común
Las asociaciones polimórficas permiten una clave externa para hacer referencia a una de varias tablas de destino posibles. Esto se logra utilizando una columna adicional para especificar la tabla de destino a la que se hace referencia. Por ejemplo, en su caso, necesitaría una columna "popular_place_type" para determinar si "popular_place_id" hace referencia a un país o a un estado.
Sin embargo, las asociaciones polimórficas tienen limitaciones en SQL debido a restricciones. SQL no puede imponer la coherencia de la base de datos con asociaciones polimórficas. En cambio, depende de la aplicación o marco que implementa estas asociaciones para garantizar la integridad de los datos.
Soluciones alternativas para referencias de clave externa a múltiples tablas
Para mantener la integridad referencial sin polimórfico Asociaciones, consideren estas alternativas:
Integridad relacional y violación de las formas normales
Es importante tener en cuenta que las asociaciones polimórficas violan los principios de normalización de la base de datos. La Primera Forma Normal (1NF) prohíbe mezclar diferentes significados en una sola columna, lo que ocurre cuando se almacenan ID de estado y país en una sola columna "popular_place_id". Las asociaciones polimórficas también violan la tercera forma normal (3NF) porque el significado de la columna "popular_place_id" depende de la columna adicional "popular_place_type".
En resumen, las asociaciones polimórficas ofrecen una solución potencial para las relaciones de clave externa en varias tablas en SQL. Sin embargo, introducen desafíos en la integridad de los datos y violan los principios de normalización de las bases de datos. Considere los enfoques alternativos mencionados anteriormente para una gestión sólida de los datos.
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