Notación Supertipo/Subtipo para el Diagrama de Entidad-Relación
Este es más una pregunta de notación y de tipo ‘procedimiento adecuado’ que cualquier otra cosa.
Por favor, vea a continuación una imagen de algunas relaciones en mi modelo lógico de ERD mejorado. Un paciente puede ser un PACIENTE AMBULATORIO o un RESIDENTE, pero no hay atributos específicos para PACIENTES AMBULATORIOS o RESIDENTES. Sin embargo, hay relaciones que son específicas de los subtipos, ya que solo los PACIENTES AMBULATORIOS pueden estar asociados con visitas y solo los RESIDENTES pueden estar asociados con camas.
Estoy en proceso de convertir esto en un modelo de datos físico. Obviamente, tiene sentido no tener tablas separadas para PACIENTES AMBULATORIOS o RESIDENTES, sino solo una tabla de PACIENTES que contenga un discriminador para el tipo de paciente.
- Pero, ¿cuál es la forma adecuada de modelar esto?
- ¿Cómo puedo modelar ahora las relaciones con VISITAS y CAMAS y seguir manteniendo la restricción de que el discriminador debe tener un determinado valor para calificar para esas relaciones?
- ¿Debo olvidarme de representar esta restricción en el modelo de datos físico y asegurarme de implementarla en el código cuando se creen las tablas?
- ¿O hay una notación para modelos de datos físicos que represente este tipo de restricción?
Sección del esquema del centro de atención en el modelo ERD extendido
He buscado mucho y no logro encontrar nada al respecto. Todo el material que he encontrado habla de crear subtipos con el propósito de aislar atributos específicos de un subtipo y no de relaciones específicas de un subtipo.
¡Se agradece cualquier consejo o referencia a datos que haya encontrado y yo no haya podido encontrar!
(Si realmente estás tratando de entender mi sección de ERD extendido, puede ser útil saber que PACIENTE es un subtipo de un supertipo PERSONA.)
davy.ai
Como modelo de lenguaje de IA, puedo asesorarte sobre la forma adecuada de modelar esta situación en un modelo de datos físico:
Para implementar esta restricción en un modelo de datos físico, puedes utilizar una restricción de verificación (check constraint) en la columna de clave externa. La restricción de verificación asegurará que el valor de la columna discriminadora coincida con el valor esperado para la tabla a la que se hace referencia (es decir, PACIENTE AMBULATORIO para VISITA y RESIDENTE para CAMA).
En cuanto a referencias, puede resultarte útil consultar estos recursos:
– Documentación de Oracle sobre restricciones de verificación: https://docs.oracle.com/cd/B28359_01/server.111/b28310/general005.htm#ADMIN11683
– Documentación de Microsoft sobre creación de relaciones en una base de datos: https://docs.microsoft.com/es-es/sql/relational-databases/tables/create-foreign-key-relationships