假设我们想要将大学课程及其入学要求存储在数据库中。例如,理学士数学,理学学士,计算机科学硕士等。
每门课程都有自己的一套要求,可能会有不同数量的非共享要求。例如,要获得BSc数学资格,您可能需要数学A和物理B。虽然BSc美术可能需要艺术中的A并且用户具有投资组合。理学硕士可能最低年龄为25岁等。
假设我们有一个拥有自己的属性集的学生。因此,他们可能拥有数学A和物理B,化学C和19岁。
我们如何构建我们的数据库,使其面向高效的查找。鉴于学生的属性,我们如何检索他们有资格获得的所有课程?
在抽象层面上,我们正在寻找其要求是给定属性的子集的所有项目。
我想在MySQL中实现它。架构可以是:
ID
名称
COURSE_ID
受试者
等级
但是当学生在主题1中有A,在主题2中有B等时,如何查询表格以获得所有符合条件的课程。
要使课程成为匹配,必须满足其中的每一项要求。
在此先感谢,我希望我的解释不会太混乱。
答案 0 :(得分:0)
好。我认为你需要一个主题列表,带有一堆主题id。
现在,对于查询,您将从(或生成)一堆主题ID和成绩开始。最简单的方法是将其作为包含这些列的临时表。
现在,您可以进行查询,加入主题ID,并添加“where temp.grade< = course.grade。
这方面的技巧是计算行数。如果它与课程指定的行数相同,那么您就成功匹配。
这足以让你前进吗?