2016-11-20 10 views
0

私はデータベースを設計するのが初めてで、教授と学校を評価できるシステムのdbダイアグラムを表現しようとしています。また、学生と教授はログインするためのアカウントを持つことができます。 これは適切なプレゼンテーションですか、エンティティリレーションシップのように何かが欠けていますか? は、と私は..私は同様に任意の継承を使用する必要があるかどうかわからなかったエンティティの関係でデータベースを設計する

Entity Relation Diagram

答えて

1
  1. 列挙された列は、誤ったデザインの良い指標です。
    値の追加テーブルが必要です。
    教授の評価から学校の評価を分離する必要はありません。
    評価者のID(あなたの場合は常に学生です)とIDとタイプ(学校/教授)となる。

  2. 私は学生と教授を異なるテーブルに入れる理由はありません。
    role属性を持つpersonテーブルと考えることができます。
    role属性の代わりに2つのフラグ列-is_studentとis_professorを指定することができます。

+0

Dudu私は私のデザインであなたのポイントを実装しようとしましたが、私は失敗し続けました。あなたは新しいエンティティの関係図を表すことができますか? –

+0

データを扱うためのアドバイスをしてください。小さなデータサンプルを作成し、それを再生します。他のすべてについては忘れてください。作業が終わったら、コード/理論などに戻ってください。あなたがこれをした後に私に話してください。 –

0

それは大丈夫に見えますが、あなたはSchoolRatingと学生の間relatioshipは多くに多くする必要があります確信していますか?格付けに1人の学生(格付けを行った学生)しかいないでしょうか?

また、SchoolRatingとProfessorRatingが非常に多くの価値属性を持っている理由はわかりません。

+0

私はあなたがschoolRatingとStudentの関係について正しいと思う。評価には、学生が答えるカップルの余分な質問が含まれているからです。コースを追加する必要があるかどうか疑問に思っていましたテーブルは学生がコースに応じて教授を評価するので、テーブルです。 –

0

初回審査:他の表やSchoolRatingの拡張が必要な​​場合があります。

あなたが設計しているとき、あなたのオブジェクトが達成するものに焦点を当て、彼らが答えた事実の質問。

SchoolRatingには、レビューを表す値がありますか、または教師の設定量の集計ですか?これらのレビューはどのように教授の評価で修正されていますか...またはそれらは関係がありませんか? (彼らは明らかに学校で行っています...あなたのデザインはどのようにこれを達成していますか?)

なぜ学生はSchoolRatingと直接関係がありますか?このテーブルは、教授および/またはいくつかの評価システムから採点された値の真のFACTテーブルではないでしょうか?

なぜ、学生は複数の教師や複数のレビューを持たないのですか?生徒がクラスに失敗しても、レビューを残す場合...あなたの構造は、同じ学生の新しいレビューをどのように修正しますか?

最後に、リレーショナル設計で継承理論を使用しないでください。リレーショナルセット理論とはまったく両立しておらず、あなたのシステムからそれを削除することを早く学ぶほど良いでしょう。

寸法と事実を考えてみましょう。カーディナリティー、またはゆっくりと変化するdimmensionsに対処する方法について、データベース列が効率をもたらすかどうかを考えてください。

デザインに疑問があるときはいつでも、スタースキーマ、Snowflakeデザイン、耐久性キー、自然キーなどのコンセプトを参考にしてください。

最終的には、表がどのような質問に答えることができ、どのようにシステムがこれらの表にアクセスするかは、標準化に関連する設計方法論と同じくらい重要です。

関連する問題