Database design 一对多关系。属性与实体?

Database design 一对多关系。属性与实体?,database-design,Database Design,我可能在这里误用了attribute这个词 我正在为一个服务学习部门设计一个数据库 我对一对多的关系感到困惑。 假设我们有一个从一个a到多个B的关系 似乎存在一对多的关系,如上面的关系,其中关于A的唯一信息是它的名称以及与之关联的实体列表 我觉得我可能想得太多了,但我知道如何处理多对多的关系,而不是一对多的关系。我希望得到一些关于如何处理这些情况的启示 例子 第一个示例: 一门独特的课程只有一个学期与之相关,但在任何一个学期都会开设许多课程 在上面的例子中,我应该有一个关于课程的实体表并包含一

我可能在这里误用了attribute这个词

我正在为一个服务学习部门设计一个数据库

我对一对多的关系感到困惑。
假设我们有一个从一个a多个B的关系
似乎存在一对多的关系,如上面的关系,其中关于A的唯一信息是它的名称以及与之关联的实体列表

我觉得我可能想得太多了,但我知道如何处理多对多的关系,而不是一对多的关系。我希望得到一些关于如何处理这些情况的启示


例子 第一个示例: 一门独特的课程只有一个学期与之相关,但在任何一个学期都会开设许多课程

在上面的例子中,我应该有一个关于课程的实体表并包含一个学期栏,还是需要有一个学期实体表并列出每个学期提供的课程

另一个例子: 每个教授都是一个系的一部分,每个系都有许多教授

因此,我没有将系列入教授实体表,而是计划制作一个表,显示哪些教授在哪些系。
但我在我的任何一本书中都没有看到过这样的情况


我希望我的困惑对专家或任何非新手都是清楚的。非常感谢您的帮助。

关于您的课堂和学期问题,您可能正在寻找交叉参考或映射表。(我可能也没有使用正确的术语!)

但假设你有三张桌子:

SEMESTER
---------
ID (int)
Year (int)
Session (nvarchar)  -- values like 01, 02, 03 or Spring, Fall, etc.

CLASS
--------
ID (int)
Name (nvarchar)
Details (nvarchar)
...

SEMESTERCLASS
-------------
ID (int)
SemesterID (int)
ClassID (int)
所以SemesterClass表将学期映射到各个班级。这样,您的独特课程可以是多个学期的一部分,并且一个学期可以有多个课程


希望这就是你想要的。希望这会有所帮助。

多对多关系与连接到一个“链接表”的两个一对多关系相同(david示例中的semesterclass)。许多数据库软件(如Oracle)在创建多对多关系时为您创建“链接表”(它们通常有难看的名称!)