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

时间:2017-09-15 17:48:42

标签: database entity-relationship

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

找到了这个

enter image description here

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

为什么映射是1:M而不是N:M?如图所示,我可以理解,一名学生可能会受到许多老师的强硬,但一名教师最多可以教一名学生

2 个答案:

答案 0 :(得分:1)

对我而言,这种模式可以代表私人辅导。

一名学生有很多导师,他们只是为了教学生而获得报酬 - 这就是1:M

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

每位导师每周上几堂课 - 那就是1:M

一堂课可以由一位以上的导师讲授,也许是物理和数学相结合来解释一个特定的话题 - 那就是1:M

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

答案 1 :(得分:1)

除非您被告知每个实体和某个实体,否则您无法使用系统。在业务/应用程序/域名术语中,关系。如果你不知道那么你需要问。基数只是一种关系的一个属性。 (与属性和特定实体一样。)您甚至不需要知道更新或查询。 (这与强制执行完整性有关。)

根据实体名称判断关系,使用常识,即猜测,因为图表并没有说,讲师 - 教学 - 学生将是M:N。但也是常识,这是多余的,因为我们希望教授学生的讲师可以从讲授学生所上课程的讲师那里得到。

图中的两个钻石具有相同的名称' Teaches'。 (虽然它们可以通过不同的参与实体对来区分。)如果我们把讲师 - 教导 - 学生称为辅导员,那么图表M:1会更有意义。标签基数有两种惯例,看这里和&看看对面。在这里,实体类型的数字告诉您实例可以参与关系的次数。这与图表基数一致:学生参加一次,所以有一名导师,讲师会指导许多学生。在外观中,实体类型的数字告诉您其他实体类型的实例子集可以参与关系的次数。

此外,讲师 - 教授 - 科目的1:1基数是不寻常的,但也是可能的。谁知道什么讲师 - Takes-class意味着什么。也许这意味着讲座,并给讲座讲座讲课,这可能只是讲授讲师的课程。此外,实体的外国_ID属性也不属于此应用程序的正常期望值。图的风格。

该网站写得不好,忘记了。实际上有数十种已出版的学术教科书免费在线,还有幻灯片和课程。此外,您需要遵循班级参考的风格。

不要在不包含密钥的情况下绘制图表。