为什么是1:M而不是N:M(ER图)

Why 1:M and not N:M (ER diagram)

我从这里找到的 https://www.tutorialcup.com/dbms/object-based-data-models.htm

我试图理解为什么 Student 和 Lecturer 之间的映射类型是一对多。所以,我有一个问题...

为什么映射是 1:M 而不是 N:M?如图所示,我可以理解一个学生可以被很多老师难但是一个老师最多只能教一个学生

对我来说,这个模型可以代表私人辅导。

一个学生有很多导师,他们专门为学生授课 - 1:M

每位导师专攻 1 个学科 - 即 1:1

每位导师每周上几次 classes - 那是 1:M

一个 class 可以由不止一位导师教授,也许物理和数学结合起来解释一个特定的主题 - 那就是 1:M

图表没有任何问题,它只是代表了一些你不习惯的东西。显然我的解释只是这样,一种解释,但我想证明图表不一定是不正确的,因为它不符合你的想象。

您不能使用系统,除非您被告知每个实体和关系 在 business/application/domain 术语中的含义。如果你不知道,那么你需要问。基数只是一种关系 属性。 (属性和参与实体也是如此。)您甚至不需要知道就可以更新或查询。 (这与执行诚信有关。)

根据实体和关系的名称,使用常识来判断,即猜测,因为图中没有说,讲师-教授-学生将是M:N.但从常识来看,它也是多余的,因为我们希望教授学生的讲师可以从教授学生就读的 class 学科的讲师中推导出来。

该图的特殊之处在于有两个同名的钻石 'Teaches'。 (虽然它们可以通过不同的参与实体对来区分。)如果我们将讲师-教师-学生表示为导师,那么图表 M:1 会更有意义。有两种标记基数的约定,look-here 和 look-across。在 look-here 中,实体类型中的数字告诉您实例可以参与关系的次数。这与图的基数是一致的:一个学生参与一次,一个导师也参与一次,一个讲师会指导很多学生。在 look-across 中,实体类型的数字告诉您其他实体类型实例的子元组可以参与关系的次数。

另外,1:1 lecturer-Teaches-subject 的基数不常见但可能。谁知道 lecturer-Takes-class 是什么意思。也许它的意思是 Lectures,并给出了 classes Lecturers lecture,大概只有讲师教授的科目。此外,实体的外部 _ID 属性不属于此应用程序和图表样式的正常预期。

那个网站写得不好,算了吧。从字面上看,有数十种免费在线出版的学术教科书,还有幻灯片和课程。此外,您需要遵循 class 参考文献的风格。

切勿在不包含关键的情况下绘制图表。