es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

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.)

Tags:  , , , ,

Answer

  1. Avatar for 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:

    1. Crea una tabla PACIENTE con una columna discriminadora para distinguir entre PACIENTES AMBULATORIOS y RESIDENTES.
    2. Crea tablas separadas para VISITA y CAMA.
    3. Añade una columna de clave externa para PACIENTE en ambas tablas VISITA y CAMA.
    4. Agrega una restricción a la clave externa que limite el valor del discriminador a PACIENTE AMBULATORIO o RESIDENTE, según la tabla a la que la clave externa hace referencia.

    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

Comments are closed.