Digamos que tengo una tabla que representa una super clase, estudiantes. Y luego tengo N tablas que representan subclases de ese objeto (atletas, músicos, etc.). ¿Cómo puedo expresar una restricción tal que un estudiante debe ser modelado en una subclase (no más, no menos)?Mantenimiento de la integridad de la subclase en una base de datos relacional
Precisiones sobre los comentarios:
- Esto se mantiene de forma manual, no a través de un paquete ORM.
- El proyecto se relaciona con el servidor SQL (pero sería bueno ver una solución genérica)
- Este puede no haber sido el mejor ejemplo. Hay un par de escenarios que podemos considerar con respecto a la creación de subclases, y acabo de inventar este ejemplo de estudiante/atleta.
A) En la verdadera orientación a los objetos, es posible que la superclase pueda existir por sí misma y no necesite ser modelada en ninguna subclase.
B) En la vida real, cualquier objeto o estudiante puede tener múltiples roles.
C) El escenario particular que estaba tratando de ilustrar requería que cada objeto se implementara en exactamente una subclase. Piense en la superclase como una implementación abstracta, o solo en elementos comunes tomados de clases/instancias de objetos por lo demás dispares.
Gracias a todos por su colaboración, especialmente a Bill.
Solo para una aclaración: ¿está gestionando esto manualmente o utilizando una solución ORM como hibernar? – Uri
¿Qué base de datos está usando? Si está utilizando PostgreSQL, tiene herencia de tablas disponible. – Elijah
Tengo curiosidad, ¿Por qué no puede ser astudent tanto un atleta como un nusician? –