1

各ユーザーが異なるクラスを持つウェブサイトを構築しています

+----+-----------+---------+
| id | subject   | user_id |
+----+-----------+---------+
|  1 | Math 140  |       2 |
|  2 | ART 240   |       2 |
+----+-----------+---------+

各クラスには、宿題ファイル、Class-Papersファイルなどがたくさんあります。そして、ここで私はあなたの助けが必要です。より良いアプローチは何ですか:次のような1つのテーブルを作成します。

+----+-----------+--------------------------------------------------+--------------+
| id | subject   | Homework                                         | Class-Papers |
+----+-----------+-----------------------------------------------------------------+
|  1 | Math 140  |  www.example.com/subjects/Math+140/file_name.pdf |   bla-bla    |
|  2 | Math 140  |  www.example.com/subjects/Math+140/file_name.pdf |   bla-bla    |
|  3 | Math 140  |  www.example.com/subjects/Math+140/file_name.pdf |   bla-bla    |
|  4 | ART 240   |  www.example.com/subjects/ART +240/file_name.pdf |   bla-bla    |
|  5 | ART 240   |  www.example.com/subjects/ART +240/file_name.pdf |   bla-bla    |
+----+-----------+--------------------------------------------------+--------------+

そして、コンテンツを表示したいときにコンテンツを分離するだけでなく、すべての主題ごとにテーブルを作成して、必要なテーブルをロードするだけではありませんか?

または、より良い、またはより一般的/有用/効率的な何かを提案できる場合は、先に進んでください。

4

2 に答える 2

2

これを試みる前に、正規化とリレーショナル設計について読む必要があります。

これは 1 対多の関係です。そのようにモデル化してください。

すべての科目の表はクレイジーです。科目ごとに新しいテーブルを追加する必要があります。

より良い解決策は、データを追加するだけで新しい科目を追加できるようにすることです。それがリレーショナル モデルのすべてです。

テーブルについて心配する必要はありません。まず自然言語で考えてください。

SUBJECT(微積分)は、多くのCOURSES(微分、積分、多変数)を持つことができます。

コース (微分計算) には多くのセクションがあります (月曜日の午前 9 時から 10 時、数学棟の部屋 2)。

STUDENT (名、姓、学生 ID) は、0 個以上の SECTION にサインアップできます。特定の STUDENT の SECTION のリストは TRANSCRIPT です。

各学生は学期ごとに 1 つの成績証明書を持っています (2012 年秋)。

SECTION には、0 個以上の ASSIGNMENT を含めることができます。

これらは、この単純な問題に必要なテーブルです。SQL の記述を開始する前に、名前とそれらの関係について心配してください。あなたはあなたがしたことをうれしく思います。

于 2012-07-20T17:09:38.113 に答える
1

私は間違いなく、科目ごとに個別の表を作成しません。その場合、「学生 X のすべての宿題を一覧表示する」などのクエリが必要な場合、学生が登録されている科目に応じて異なるテーブルにアクセスする必要があります。さらに悪いことに、誰かが新しい科目を追加するたびに、新しいテーブルを作成します。将来、宿題の新しい属性が必要であると判断した場合、1 つのテーブルを更新するのではなく、これらのサブジェクト テーブルをすべて更新する必要があります。あちこちで悪いニュースばかりです。

于 2012-07-20T17:09:55.727 に答える