0

大学のコースとその入学要件をデータベースに保存したいとします。たとえば、BSc Mathematics、BSc Fine Art、MSc Computer Science などです。

各コースには独自の一連の要件があり、共有されていない要件の数が異なる場合があります。たとえば、BSc 数学の資格を得るには、数学の A と物理学の B が必要な場合があります。一方、BSc Fine Art では Art の A が必要であり、ユーザーはポートフォリオを持っている必要があります。修士号の最低年齢は25歳などです。

次に、独自の属性セットを持つ学生がいるとします。したがって、彼らは数学で A、物理学で B、化学で C を持っていて、19 歳である可能性があります。

効率的なルックアップに合わせてデータベースを構築するにはどうすればよいでしょうか。また、学生の属性が与えられた場合、学生が資格のあるすべてのコースを取得するにはどうすればよいでしょうか?

抽象的なレベルでは、要件が指定された属性のサブセットであるすべてのアイテムを探しています。

これをMySQLに実装したいと思います。スキーマは次のようになります。

コース

ID

名前

要件

course_id

主題

学年

ただし、学生が科目 1 で A、科目 2 で B などを取得している場合に、対象となるすべてのコースを取得するためにテーブルをクエリする方法は次のとおりです。

コースが一致するためには、その要件のそれぞれが満たされている必要があります。

事前に感謝します。私の説明があまり混乱しないことを願っています。

4

1 に答える 1

0

わかった。たくさんのサブジェクト ID を含むサブジェクト リストが必要だと思います。

ここで、クエリについて、一連の科目 ID と成績から開始 (または生成) します。最も簡単な方法は、これをそれらの列を持つ一時テーブルにすることです。

これで、サブジェクト ID を結合し、"where temp.grade <= course.grade.

これのトリックは、行を数えることです。コースが指定したのと同じ数の行がある場合、試合が成功します。

それはあなたを動かすのに十分ですか?

于 2013-09-05T10:45:30.403 に答える