2011-01-28 17 views
0

学校の学年のスキーマに適したデータベース設計は何でしょうか。学校のデータベース設計についての質問

基本的に、私は次があります。グレードの平均値を取得しようとしたとき

enter image description here

問題があります。私は最初の妊娠のすべての科目のすべての学年の平均を言うことができません。

グレーディングシステムのための良いDBデザインに関する提案はありますか?

+1

実行しようとしているクエリを投稿してみませんか? – FrustratedWithFormsDesigner

+0

デザインのレビュー、またはクエリのヘルプが必要ですか?これらは非常に異なる質問です。 – gbn

+0

デザインレビュー。このデータベースの設計は、私の目的に合わず、各学年の平均などのフィールドがあります。 –

答えて

0

件名、成績、スコアの間にクラス表を追加します。

  • クラステーブルは、サブジェクト、グレード、トリメスターを参照します。
  • スコアテーブルは、サブジェクトの代わりにクラスを参照します。

あなたは、1学期と1学年ごとの集計と平均スコアを問題にする必要はありません。

1

平均グレードを含むフィールドをデータベースに持つことは、データベース設計が悪いことです。このデータは冗長です(この値を他の場所で計算する必要があるすべてのデータが既にあるため)、保存しないでください。主要なデータベース設計ルールは、計算できるものを決して格納しません。これにより、更新時に2つのものを更新する必要があります。この場合、計算に使用するグレードを更新するときに、平均テーブルを更新する必要があります。

ただし、平均を計算するビューを作成することができます。ビューは、基本的に選択クエリによって作成されるテーブルです。ビューを作成するには、最初に、この平均(IDSubjectまたはIDStudentの可能性が高い)を参照するために使用するデータと、必要な平均値を返す選択クエリを作成します。次に、データベースにビューを作成する方法を調べ、Selectクエリからビューを作成できるようにする必要があります。

関連する問題