私はK-12学校に勤務しています。私が開発した既存の評定システムは、VBAを使用するExcelに基づいています。任期が満了するたびに400以上のExcelワークブックを統合するのは常に悪夢です。夏休み中は、すべてのデータをデータベースに入れて管理しやすくしています。学校の採点システムのためのデータベース設計アドバイスが必要
私の問題はこれです:、評定表のような計算集約型のアプリケーションでは
それは、テーブルのフィールドに計算を格納するのに良いですか、それは生データのみを保存するだけで計算を行うに優れていますフロントエンド?
Excelの評定表システムが機能する方法は、このようなものです...
- 教師はスコア/可能な限り最高のスコアの形で各学生の各評価のための各スコアを記録します。 (例えば、クイズ1 = 5/10、宿題1 = 20/25など)
- スコアはパーセンテージとして計算され、コンポーネントごとに要約されます。 「コンポーネント」とはクイズ、宿題などを意味しますので、「クイズの平均= 90%、宿題の平均= 80%など」「
- 異なる科目では、「Science = 50%クイズ+ 50%宿題、数学= 60%クイズ+ 40%宿題 "。
- 次に、すべての科目の平均を取得することによって、各生徒の一般的な平均成績が計算されます。
上記のすべてはスプレッドシートで非常に簡単ですが、データベースに実装する方法はわかりません。
tbl_scores
id
student_id
term_id
subject_id
component_id
assessment_id
raw_score
highest_possible_score #not sure about this cause this can be implied from assessment_id
各スコアエントリの計算(パーセントを格納するのに有用であろう、コンポーネントの平均:
瞬間のように、私はすべての評価は、次のように記録されているテーブルを持つようなものを考えています、被験者の平均値、一般的な平均値など)を使用し、ストアドプロシージャとトリガを使用して、新しいスコアが入ったときにそれらを更新します。
または、生のスコアを保存して、フロントエンドにのみすべてを計算する方が良いでしょうか?このオプションは、サブクエリのためにここでのSELECTクエリが本当に複雑になることを知っている最初のものよりも速いでしょうか?
ところで、私はこれにPostgreSQLを使うつもりです。
アドバイスを事前にいただきありがとうございます。
DashMug
私のポストに加えて、私が考えているアイデアの1つは、ExcelをDBのフロントエンドとして引き続き使用することです。 Excelは毎回計算を行い、(多分)計算結果をDBに戻します。 – dashmug