Para una asignación de base de datos, tengo que modelar un sistema para una escuela. Parte de los requisitos es modelar información para el personal, los estudiantes y los padres.Modelado de herencia en una base de datos
En el diagrama de clases UML he modelado esto como esas tres clases que son subtipos de un tipo de persona. Esto se debe a que todos requerirán información sobre, entre otras cosas, datos de dirección.
Mi pregunta es: ¿cómo modelar esto en la base de datos (mysql)?
pensamientos hasta el momento son los siguientes:
- Crear una tabla persona monolítica que contiene toda la información para cada tipo y tendrá un montón de valores nulos dependiendo de qué tipo se está almacenando. (Dudo que esto caiga bien con el conferenciante a menos que argumente el caso muy convincentemente).
- Una tabla de personas con tres claves externas que hacen referencia a los subtipos pero dos de las cuales serán nulas. De hecho, ni siquiera estoy seguro de si eso tiene sentido o si es posible.
De acuerdo con esta wikipage about django que es posible implementar la clave principal en los subtipos de la siguiente manera:
"id" integer NOT NULL PRIMARY KEY REFERENCES "supertype" ("id")
- algo más que no he pensado en ...
Así que para aquellos que tienen herencia modelada en una base de datos anterior; ¿Cómo lo hiciste? ¿Qué método recomiendas y por qué?
Los enlaces a los artículos/publicaciones en el blog o las preguntas anteriores son más que bienvenidas.
¡Gracias por su tiempo!
ACTUALIZACIÓN
Alright Gracias por las respuestas a todos. Ya tenía una tabla de direcciones por separado, así que eso no es un problema.
Saludos,
Adam personal
Si esta es una tarea añadir la etiqueta de la tarea favor – JoshBerke
También puedes ver: http://stackoverflow.com/questions/5802/inheritance-in-database – JoshBerke
Ok seguro. Supongo que está permitido hacer preguntas relacionadas con las tareas si no le pido a la gente que lo haga todo por mí. –