IIC2413 / Syllabus-2024-2

74 stars 8 forks source link

Llaves primarias en jerarquía #126

Closed elneitans closed 2 months ago

elneitans commented 2 months ago

Hola. Me gustaría hacer otra pregunta. En una jerarquía de clases, mi atributo "padre" tiene una llave primaria. El problema es que en mi clase "hija", al agregarle un atributo, el atributo de la llave primaria del padre deja de ser una llave candidata, y tengo otro atributo que es llave candidata. Mi pregunta es, ¿si al agregarle este nuevo atributo llave candidata y subrayarla (haciéndola la primaria), la llave primaria del padre deja de ser llave y se hereda como cualquier atributo, o debo hacer algo más?

Gracias de nuevo.

VicenteSanMartin commented 2 months ago

Hola! Sí es posible subrayar una nueva llave candidata y hacer que la llave primaria del padre deje de ser llave. Pero en el caso que estás describiendo, lo que te recomiendo es volver a pensar en la relación que existe entre las entidades (clases) que estás tratando de modelar, en concreto pensar en la cardinalidad de la relación, y ver si es mejor hacer dos clases separadas.

Por ejemplo, si tienes la clase padre Persona (cuya llave primaria puede ser el Rut), y quieres heredar sus atributos a una clase hija Estudiante (con una nueva llave candidata N° Alumno), donde el Rut ya no es único entre estudiantes, una buena idea sería hacer dos entidades separadas que se relacionen al tener la llave foránea Rut en la entidad Estudiante, además de la llave primaria N° Alumno.