0

わかりましたので、私はデータベース (この場合は MySQL) が得意ではありませんが、そこまでは行っています。

データベース内の 2 つのテーブルを関連付ける際に問題が発生しました。私は学生テーブルとクラステーブルを持っています。(紙の上での) 関係は多対多になります。IE: 生徒は多くのクラスの一部になることができ、クラスには多くの生徒が所属できます。

現時点では、Students と Class の 2 つのテーブルしかありませんが、これでは十分ではないようです。私が現在持っている唯一の解決策は次のとおりです。

Classes という 2 つのフィールドを持つ追加のテーブルを追加します: ClassID (Class.ClassID に関連) と StudentID (Student.StudentID に関連)

これでうまくいくと確信していますが、レコードの追加/取得/更新に関しては、少し迷ってしまうのではないかと心配しています。これらのクエリを実行すると、何らかの結合が発生しますか?

これが最善のアプローチではない場合、どうなるでしょうか? 可能であれば、すべてのテーブル操作を PHPMyAdmin の GUI に保持したいと考えています。

ありがとう!

4

2 に答える 2

2

私の知る限り、多対多の関係を持つテーブルを扱うには、追加のテーブルが必要です。彼らはそれをJUNCTION TABLEと呼んでいます。それを見てください、あなたのデザインはうまく見えます。

于 2013-06-24T10:56:46.317 に答える
1

ジャンクション テーブルはまさにその方法です。あなたのアプローチは正しいです。

クラスのすべての生徒の記録を取得するには、次のようにします。

Select s.* from students s, class c, studcls sc where s.id=sc.student and c.id=sc.class and c.title='Math';
于 2013-06-24T10:59:11.433 に答える