2009-07-26 8 views
1

私は最初のMySQLプロジェクトでERD, logical and physical diagramsを設計しました。データベースを設計する正しい方法

私の友人は私と同じプロジェクトを作っています。 ERDを作成して正規化することでデータベースの計画を開始しました。

しかし、彼はリレーショナルデータベースダイアグラムを使用して、ERDを作成する前にインタフェースやその他の部品を設計します。彼は、例えば、 "ヘルプテーブル"を作るのではなく、列の電話番号だけに "スタック"を書きます。最初にインターフェースを作ってERDを作るのが最善だと言います。

私たちのどちらがあなたの意見でより良い計画を立てていますか?

答えて

3

これについては、多くの人が1つのことを書いています。しかし、私は一般的にどうなるのか一般化する

  1. があなたのデータを分析し、第三正規形にそれを減らすことです。達成するためにこれはかなり公式でなければなりません。
  2. データのビジネス使用の可能性が高いことを考慮して、データを非正規化する必要があるかどうかを決定します。通常、ほとんどのデータベースは3つ目のノーマルでは圧倒的にいくつかの致命的な例外があります。
  3. 上記に照らして、必要な追加インデックスを作成するか、既存のプライマリインデックス(フェーズ1で割り当てられているはずです)を変更します。
  4. 必要に応じて、ユーザーアクセスのビューを作成します。必要な数は、(単純な組み込みアプリケーションの場合のように)何もない(許可されたテーブルへの直接的なデータアクセスがない場合など)から変わる可能性があります。
  5. 必要な手続きを作成し、場合によってはトリガーします(一般的に避けてくださいが、監査目的に適しています)。

もちろん、プロセスはかなり反復的ですが、データからインターフェイスへの一般的な設計パスは真です。また、データベースを設計して後で変更し、可能であればそれを合理的に簡単な作業にすることを念頭に置いておくとよいでしょう。

1

「インターフェースと操作」の意味はわかりませんが、スキーマを設計する方法は正しいですか?ERDを行い、適切に正規化してください。多くの人々は、スキルを現在のレベルのスキルに適合させるために、設計を開始するときに、ショートカットを取ります。

たとえば、電話番号のテーブルを作成し、これらの電話番号を「得意先」テーブルにマッピングする代わりに、Phone1 Phone2 Phone3という列に固定することができます。それは後であなたの質問を設計するときの死のキスかもしれません。

私のアドバイス... ERDを使用して正規化されたデータモデルを作成してください。次に、VIEWとユーザー定義関数を読み込み、クエリを実行したい人のためにスキーマを必要に応じて「平坦化」します。一般的な答えに申し訳ありませんが、一般的な質問のようなものです...

+0

あなたの答えでこの部分についてもっと知りたいです。あなたのスキーマを「平坦化」するために、VIEWとユーザ定義関数を読んでください。--- **あなたのビューの定義は何ですか? **私は私のディスカッションサイトのユースケースを示す図を作った。 **ビューは、用途を要約した図ですか?** –

関連する問題