ここで2つの役割で立ちます
- DBA:データベース管理者/設計者。
- 開発者:アプリケーション開発者。
DBAは、データベースのすべてのトリックを本当に知っている人だと思います。本当に知っています。
DBA:
データベースはアプリケーションの鍵であり、その目的を十分に果たし、最高のパフォーマンスを発揮するために、事前定義された構造を持っている必要があります。
ランダムスキーマ(適度に正規化されていて適切)を使用できない場合は、ツールが間違っています。
開発者:データベースは単なるデータストア
であるため
、データベースをシンプルに保ち、アプリケーションに集中する必要があります。
DBA:
データベースはストアではなく、アプリケーションの中核です。データベースのないアプリケーションはありません。
開発者:
いいえ。アプリケーションがコアです。フロントエンドとそれに適用されるビジネスロジックがなければ、アプリケーションはありません。
そして戦争が始まる...
両方のポイントが有効であり、常にトレードオフになります。
データベースがRoRによってのみ使用される場合は、単純なストアのように使用できます。DBを他のアプリケーション
で使用できる場合、または大量のデータと大量のトラフィックで使用される場合は、いくつかのベストプラクティスを適用する必要があります。
一般的に、DBAに異議を唱える方法はありません。
しかし、彼らはあなたの状況を理解することができ、あなたがより生産的になることができるようにあなたが基準を少し緩めることを可能にするかもしれません。
ですから、一緒に緊密に協力する必要があります。
そして、データベースがこのようなものである必要がある理由を説明し、証明するために、お互いに話し合う必要があります。
そうしないと、チームが壊れて、プロジェクトが失敗する可能性が高くなります。
ActiveRecordは非常に便利なツールです。しかし、それはあなたのためにすべてを行うことはできません。デフォルトでは、正確に期待されるデータベース構造は提供されません。したがって、調整する必要があります。
反対側。DBAがすべてのPKが自動インクリメントされた整数であることを受け入れることができる場合、開発者の作業が楽になります(ActiveRecordはデフォルトでそれを行います)。
一方、開発者がDBAの制約の一部を受け入れると、DBAの作業が楽になります。
今あなたの質問に答えるために:
スキーマを単純化するためにどのように主張しますか
議論しないでください。チームに会い、メッセージを伝え、なぜそれを行うべきかを指摘します。
多分それは本当にすべきではなく、あなたはすべてのことを知らないでしょう、多分彼らは何かに気づいていません。
データベースの一般的な構造に同意し、メタ言語としてRoR移行を使用してデータベースを記述してみることができます。
このように、彼らは全体像を見るでしょう、そしてあなたはあなたの素晴らしいActiveRecordsを使うでしょう。また、全員が同じページに表示されます。