高水準言語(Python、Rubyなど)で開発されたプロジェクションに手書きのスキーマを使用する必要がありますか、それともORMソリューションに自動生成させる必要がありますか?最終的には、すべてのデータを破棄せずに移行する必要があります。特定のRDBMSに関連付けてもかまいませんが、制約やプロシージャなどの機能を何らかの形でサポートできれば便利です。
4 に答える
ORM で生成されたスキーマを使用することはありません。
ORM がスキーマを生成しようとしている方法は、多くの場合、データベースをどのように構造化したいかと完全に一致していません。また、これが些細なことであることはわかっていますが、命名スキームは通常貧弱です。
データベース構造には独自の制約があり、通常、ORM 自動生成ツールはそれを十分に考慮していません。また、後でデータベースでレポートを実行する場合 (実行する予定がある場合) は、適切なデータベース構造と設計を行うことが非常に重要です。
See this Coding Horror article and links for discussion on that migration you'll eventually need to do. Plan for it now.
Also see Martin Fowler on database evolution; I particularly recommend the notion that test data generation is part of database set-up. The idea may be a little underdeveloped, in that there is not a clear delineation of the different problems in different environments, development versus QA versus production.
ORM に必要なスキーマを生成させます。そうすれば、遅すぎるものや別の方法で変更したいものをいつでも変更できます。しかし、すぐに開始して何かを機能させることができ、ORM の人々は通常、スキーマの生成に関して自分が何をするかを知っています。
ORM ソリューションに生成させますが、やみくもに使用しないでください。それを読んで、健全性をチェックしてください。