0

私はデータベースの管理にかなり慣れていませんが、自分の教育ニーズのために何を達成したいのかについての考えを持っています。

多くの生徒の英語力のレベルに関する情報を保存するつもりです。すべての学生にデータベースにログインさせる予定です。そこで、特定の質問に関連するチェックボックスをオンにすることで、自分のスキルを評価できるようになります。

私には7つの異なるカテゴリがあり、すべてにいくつかの質問が含まれています。その上、各カテゴリーは6つの異なるレベルに分けられます。たとえば、聴解のレベルはA1、A2、B1、B2、C1、C2です。各レベルは、異なるレベルの英語スキルを表しています。カテゴリにはすべて、さまざまな質問があります。「誰かがゆっくり話し、明確な言葉を使うかどうかは理解できます」のように。

各カテゴリの各質問には、3つのチェックボックスもあります。1つは生徒が特定の質問に「はい」と答えられるかどうかを確認できるもの、1つは私(教師)が答えることができるかどうかを確認するためのもの、もう1つは生徒が質問が目標である場合に記入するためのチェックボックスです。到達するのが好きです。

これまでに、生徒用のテーブル、7つのカテゴリすべてをリストしたテーブル、およびいくつかの質問を含むカテゴリごとに1つのテーブルを作成しました。また、学生テーブルとカテゴリリストに関連する「間」テーブルもあります。これらを直接リンクすると、多対多の関係になると思います。

これは、そのようなデータベースを設計するための賢明な方法ですか?

私が今抱えている最大の問題は、チェックボックスをミックスに追加する方法です。それらを個別のテーブルとして追加する必要がありますか、それともカテゴリテーブルの質問と一緒にまとめる必要がありますか?明らかに、彼らは各生徒と各質問に関連している必要があります。

最初に1つのレベルで動作させてから、他のすべてのレベルを追加する必要があると思ったので、まださまざまなレベルで開始していません。

ずっと読んでくれてありがとう。私を助けることができるように、私が十分に明確になっていることを願っています。

4

1 に答える 1

1

おそらく、私のより良い判断に反して、これを回答として投稿します...

簡単なデータベース構造を作成し、要件に基づいていくつかのデータを挿入しました。ここで表示できます: http://www.sqlfiddle.com/#!3/54a2d/3

この構造は、単純な機能を追加することが非常に困難な点まで非常に厳格です (ゼロから始めることをお勧めします)。

たとえば、スキーマを大幅に変更しないと、「英語を何年勉強していますか」という質問に対して適切な回答が得られない、学生を再評価できない、学生が答えを明確にできない、などです。

覚えておいてください - 新しい機能に対応するために列を追加し始めるときはいつでも、頭の中で無言の叫び声があり、(おそらく) 間違ったことをしているということを告げるはずです。正規化について読んでください。

また、チェックボックスが多くのクライアント/サーバーの組み合わせで問題を引き起こすかどうかはわかりませんが、SQL Server バックエンドを使用する MS Access では、TIMESTAMP列を追加して、更新をコミットする前にレコードが変更されたかどうかを Access が判断できるようにする必要があります。

アップデート

SQL Fiddle リンクで作成されたテーブルの視覚的表現を追加しました

ここに画像の説明を入力

于 2012-09-01T21:31:41.557 に答える