Sea para bien o para mal, muchas de las propiedades de la OO no tienen traduccion directa a tablas, empezando por el polimorfismo.
Los ORM tratan de cubrir esa limitación. Puedes tener una clase Pato y una clase Tigre , que son subtipos de Animal.
El objeto Pato se guarda en una tabla ANIMAL y una tabla PATO, donde PATO tiene una FK a ANIMAL
El objeto Tigre se guarda en una tabla ANIMAL y una tabla TIGRE, donde TIGRE tiene una FK a ANIMAL
Cuando un ORM cargue los datos de PATO, cargará lo de ANIMAL y lo de PATO, y el objeto en el que es mapeado hará el polimorfismo ( por código ). Por ejemplo, el método vuela() , heredado de la clase Animal, sería implementado en la clase Pato como "return true"
-- "En teoría no hay diferencia entre teoría y práctica. En la práctica, sí la hay."
Re:Mapeo objeto-relacional
(Puntos:3, Interesante)( http://barrapunto.com/~Grohl/bitacora | Última bitácora: Lunes, 09 Marzo de 2015, 09:07h )
Los ORM tratan de cubrir esa limitación.
Puedes tener una clase Pato y una clase Tigre , que son subtipos de Animal.
El objeto Pato se guarda en una tabla ANIMAL y una tabla PATO, donde PATO tiene una FK a ANIMAL
El objeto Tigre se guarda en una tabla ANIMAL y una tabla TIGRE, donde TIGRE tiene una FK a ANIMAL
Cuando un ORM cargue los datos de PATO, cargará lo de ANIMAL y lo de PATO, y el objeto en el que es mapeado hará el polimorfismo ( por código ).
Por ejemplo, el método vuela() , heredado de la clase Animal, sería implementado en la clase Pato como "return true"
"En teoría no hay diferencia entre teoría y práctica. En la práctica, sí la hay."