Herencia TPT
La herencia tabla por tipo (TPT) utiliza una tabla separada en la base de datos para mantener los datos de propiedades no heredados y las propiedades clave de cada tipo en la jerarquía de herencia.
A partir del siguiente modelo:
Al impactar el modelo, tenemos las siguientes tablas en la base de datos:
Se mapeo la entidad "EmpeadoInterno" con una nueva tabla llamada "Empleados_EmpleadoInterno".
Herencia TPH
Apartir del siguiente modelo
Ejecutamos el script en la base de datos:
A partir de la entidad Empleado, realizar las siguientes acciones en modelo.
Eliminar "TipoEmpleado"
Crear dos entidades "Externo" y "Interno" que deriven de Empleado
Cortar y pegar la propiedad "CostoxHora" en la entidad Externo
Cortar y pegar la propiedad "Salario" en la entidad Interno
La herencia tabla por jerarquía (TPH) utiliza una tabla de base de datos para mantener los datos para todos los tipos de entidades en una jerarquía de herencia.
La entidad Empleado debera ser abstracta.
Cuando se crea la entidad Externo que deriva de la entidad Empleado todos sus atributos, tener presente el siguiente mapeo de los campos.
Para la entidad Externo se agrega un condicion cuando la entidad es su campo "Tipo empleado" que no es visible y no es mapeada es igual a "externo". El unico campo mapeado es Costo x hora.
Cuando se crea la entidad Interno que deriva de la entidad Empleado todos sus atributos, tener presente el siguiente mapeo de los campos.
Para la entidad Interno se agrega un condicion cuando la entidad es su campo "Tipo empleado" que no es visible y no es mapeada es igual a "interno". El unico campo mapeado es Salario
Para agregar un empleado Interno o Externo a la base de datos:
Para recuperar la entidad empleado según el tipo:
Excelente tutorial
ResponderEliminarTengo una duda, como podría pasar a un Empleado Externo a Empleado Interno, pero que siga teniendo el mismo Id
Por ejemplo el Externo Empleado.Id = 1 y al pasarlo a Interno el Id = 1 debe de conservarse.
Es posible hacer esto o no estoy aplicando bien la Herencia a mi modelo.
Saludos.
Si utilizas la herencia TPH no tenes problemas ya que debes modificar el tipo de empleado independientemente del id del empleado. Saludos.
ResponderEliminar