2008-09-24 10 views
5

¿Debo usar un esquema escrito a mano para mi proyecto desarrollado en un lenguaje de alto nivel (como Python, Ruby) o debería dejar que mi solución ORM lo genere automáticamente? Eventualmente tendré que migrar sin destruir todos los datos. Está bien vincularse a un RDBMS específico, pero sería bueno si las características como las restricciones y los procedimientos pudieran ser compatibles de alguna manera.ORM: ¿Esquema manuscrito o generado automáticamente?

Respuesta

3

Nunca voy con el esquema generado por ORM.

Me parece que las formas en que el ORM quiere generar el esquema a menudo tienen una probabilidad total con respecto a cómo quiero que mi base de datos se estructure. Además, y sé que esto es trivial, el esquema de nomenclatura generalmente es pobre.

La estructura de la base de datos tiene sus propias limitaciones, que encuentro que generalmente las herramientas de autogeneración de ORM no consideran completamente. Y si va a querer ejecutar informes en su base de datos más adelante (y lo hará), entonces tener una buena estructura de la base de datos y el diseño es muy importante.

1

Deje que el ORM genere el esquema que desea. Entonces siempre puedes cambiar cosas que son demasiado lentas o que quieres de manera diferente. Pero le permite comenzar rápidamente y tener algo en funcionamiento, además de que las personas de ORM generalmente saben lo que hacen cuando se trata de generar esquemas.

+0

Creo que es una buena manera de comenzar, pero siempre he tenido que dejar de generarlo y administrarlo, generalmente por razones de rendimiento de db. –

2

Consulte this Coding Horror article y enlaces para el debate sobre esa migración que eventualmente tendrá que hacer. Planificalo ahora.

Ver también Martin Fowler on database evolution; Recomiendo especialmente la idea de que la generación de datos de prueba forma parte de la configuración de la base de datos. La idea puede estar un poco subdesarrollada, ya que no hay una delineación clara de los diferentes problemas en diferentes entornos, desarrollo versus QA versus producción.

0

Deje que su solución ORM lo genere, pero no lo use ciegamente; léalo y cúmplalo con cordura.

Cuestiones relacionadas