¿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
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.
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.
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.
Deje que su solución ORM lo genere, pero no lo use ciegamente; léalo y cúmplalo con cordura.
- 1. JPA: Invalidar ID generado automáticamente
- 2. Recuperando rango de trazado generado automáticamente
- 3. ¿Puede NHibernate comprobar si se ha generado el esquema db?
- 4. Cómo incluir automáticamente el código generado xmlbeans en maven jar?
- 5. ¿Cómo evitar que FxCop analice el código generado automáticamente?
- 6. ¿La mejor práctica para editar el código generado automáticamente MVC3?
- 7. ¿Código Python generado automáticamente a partir de un diagrama UML?
- 8. ¿Qué significa "// TODO stub de método generado automáticamente"?
- 9. ¿Cambiar código generado o usar herencia?
- 10. O exclusivo en el Esquema
- 11. ¿Adjuntar automáticamente archivos XML al esquema XSD en Visual Studio?
- 12. regex para n caracteres o al menos m caracteres
- 13. Levenshtein Algoritmo de distancia mejor que O (n * m)?
- 14. Esquema DTD o XML. ¿Cuál es mejor?
- 15. "fb: //" esquema de URL: ¿oficial o no?
- 16. Monad m => a -> [a -> m a] -> m a
- 17. Ocultar^M en emacs
- 18. ¿Qué significa M, D en decimal (M, D) exactamente?
- 19. @ Html.EditorFor (m => m) sintaxis lambda en MVC
- 20. ¿Hay algún uso para el estudio visual generado automáticamente <meta> etiquetas
- 21. Generar esquema XML de la clase Java (o lo contrario)
- 22. wsimport - Esquema importado sin espacio de nombres ==> paquete con el nombre 'generado'
- 23. ¿Generación de secuencia de comandos DDL para el objeto sin nombre de esquema generado usando DBMS_METADATA.GET_DDL?
- 24. Cómo alojar la secuencia de comandos python cgi con `python -m SimpleHTTPServer 8000` o` python -m CGIHTTPServer 8000`?
- 25. Operador de asignación de C++: ¿compilador generado o personalizado?
- 26. Tiro no capturado generado por JLink o UseFrontEnd
- 27. M-x occur-instant
- 28. XCode .m vs. .MM
- 29. Cómo eliminar^M
- 30. Cómo configurar IntelliJ IDEA y/o Maven para agregar automáticamente directorios con el código fuente de Java generado usando jaxb2-maven-plugin?
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. –