0

假设我们想将大学课程及其入学要求存储在数据库中。例如,BSc数学,BSc美术,MSc计算机科学等。

每门课程都有自己的一组要求,并且可能有不同数量的非共享要求。例如,要获得 BSc Maths 的资格,您可能需要数学 A 和物理 B。而 BSc Fine Art 可能需要 A in Art 并且用户有作品集。理学硕士的最低年龄可能为 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 回答