tipos patrones mendel leyes humana herencia genetica ejemplos inheritance symfony1 doctrine concrete-inheritance column-aggregation

inheritance - patrones - tipos de herencia pdf



Diferentes tipos de herencia en el mismo esquema (1)

Estoy usando Doctrine 1.2 en un proyecto de Symfony, y estoy considerando mezclar tipos de herencia concretos y de agregación de columnas en mi esquema: la agregación de columnas me permite consultar en una tabla padre y obtener registros padre e hijo, mientras que la herencia concreta me permite obtener un esquema más limpio. Además, la mezcla estará en la misma cadena de herencia. ¿Cómo escribiría el archivo de esquema? Como el siguiente?

A: B: inheritance: extends: A type: concrete C: inheritance: extends: B type: column_aggregation keyField: type keyValue: 1

O como esto tal vez:

A: B: inheritance: extends: A type: concrete C: inheritance: extends: B type: concrete D: inheritance: extends: C type: column_aggregation keyField: type keyValue: 1 E: inheritance: extends: C type: column_aggregation keyField: type keyValue: 2

¿Hay algún peligro / advertencia?


Mientras evites la herencia circular o la herencia en forma de diamante, estarás bien y puedes usar esto.

Una herencia circular (obviamente se ve de la siguiente manera

Clase A Extiende B Clase B Extiende A

O

LA CLASE A SE EXTIENDE C

LA CLASE B SE EXTIENDE A

LA CLASE C SE EXTIENDE A

Una herencia en forma de diamante es un poco más redonda. Sucede cuando ocurre el siguiente tipo de condición

CLASE A

LA CLASE B SE EXTIENDE A

LA CLASE C SE EXTIENDE A

LA CLASE D SE EXTIENDE B, C