私は現在、教師がオンラインでカリキュラムを計画できるアプリケーションを書き直しているところです。
このアプリケーションは、教師が生徒の作業単位を作成するプロセスをガイドします。現在、このツールは 3 つの州で使用されていますが、それ以上に拡大する計画があります。
このアプリケーションの主な特徴の 1 つは、学生のすべての成果がシステムにプリロードされていることです。これにより、教師は各作業単位で達成される結果を検索または参照して選択することができます。
私が最初にシステムを設計したとき、私はすべての学生の成果が同様の階層に従うと仮定しました。つまり、名前付きのネストされたコンテナとその結果があります。
私が入力した最初の結果セットは 3 層でした。そのため、私のデータベースには次の構造があります。
=========================
太字の表
h1
ID、名前
h2
id、parent___id (h1_id)、名前
h3
id、parent___id (h2_id)、名前
結果
id、parent___id (h3_id)、名前
=========================
n/ レベルの階層を追加できないことは明らかですが、この方法では、データベースに再帰的にクエリを実行せずにすべての標準のリストを表示することも困難でした。
学生の成果 (およびその親カテゴリ) が追加されると、それらを変更する理由はほとんどありません。主な要件は、読みやすく効率的であることです。
これまでのところ、さまざまな学校/州/国からの生徒の成績はすべて、私の仮定にほぼ従っています。これは常に当てはまるとは限りません。
もちろん、既存のデータはすべて現在のデータベースから転送する必要があります。
上記を考慮して、さまざまな学生の成果セットをすべて保存するための最良の方法は何ですか? 私が持っていたアイデアのいくつかを以下にリストします。
再帰または多数の結合を使用する場合は、データベース内の 4 つのテーブルを引き続き使用します。
ネストされたセットを使用する
XML (すべての異なるセットのグローバル XML ファイル、またはそれぞれの XML ファイルのいずれか)