Question

Devrais-je utiliser un schéma manuscrit pour mon projet développé dans un langage de haut niveau (tel que Python, Ruby) ou devrais-je laisser ma solution ORM le générer automatiquement? Finalement, j'aurai besoin de migrer sans détruire toutes les données. C’est bien d’être lié à un SGBDR spécifique, mais il serait utile que des fonctionnalités telles que les contraintes et les procédures puissent être prises en charge.

Était-ce utile?

La solution

Je ne vais jamais avec un schéma généré par ORM.

Je trouve que les façons dont l'ORM souhaite générer le schéma sont souvent totalement opposées à la façon dont je souhaite que ma base de données soit structurée. De plus, et je sais que cela est trivial, le schéma de nomenclature est généralement médiocre.

La structure de la base de données a ses propres contraintes, mais les outils de génération automatique ORM ne sont généralement pas pris en compte. Et si vous souhaitez exécuter des rapports sur votre base de données ultérieurement (et vous le ferez), il est très important de disposer d'une bonne structure et d'une bonne conception de la base de données.

Autres conseils

Voir cet article concernant l'horreur de codage et des liens vers discussion sur la migration que vous devrez éventuellement faire. Planifiez-le maintenant.

Voir aussi Martin Fowler sur l'évolution de la base de données ; Je recommande particulièrement la notion selon laquelle la génération de données de test fait partie de la configuration de la base de données. L’idée est peut-être un peu sous-développée, dans la mesure où il n’ya pas de délimitation claire des différents problèmes dans différents environnements, développement versus assurance qualité versus production.

Laissez l’ORM générer le schéma de votre choix. Ensuite, vous pouvez toujours changer les choses qui sont trop lentes ou que vous voulez différemment. Mais cela vous permet de démarrer rapidement et de faire fonctionner quelque chose, et que les personnes ORM savent généralement ce qu’elles font pour générer des schémas.

Laissez votre solution ORM le générer, mais ne vous en contentez pas. parcourez-le et vérifiez-le.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top