大学のコースとその入学要件をデータベースに保存したいとします。たとえば、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 などを取得している場合に、対象となるすべてのコースを取得するためにテーブルをクエリする方法は次のとおりです。
コースが一致するためには、その要件のそれぞれが満たされている必要があります。
事前に感謝します。私の説明があまり混乱しないことを願っています。