我试图在ER图中显示以下内容:

There are instructors and courses, a course is taught by only one instructor
whereas an instructor can give many courses.

在此处输入图像描述

在此处输入图像描述

我的问题是,两个图之间有什么不同,换句话说,我们把哪一条线变成箭头很重要,或者唯一重要的是箭头的方向?

另外,如果我们考虑映射基数;是一对多还是多对一?如果我们从课程的Angular 考虑,那么它是多对一的,但是如果我们从讲师的Angular 考虑,那么它是一对多的.我们如何决定?

推荐答案

在ER图中,当关系被表示时,不使用箭头.有些教师在决定基数时使用此箭头,但这只是为了获得基数(1:1、1:M和N:M)

我已经附上了陈氏符号的ER图,也使用了Crow符号,你可以使用它们中的任何一个.

ER digram

决定一段关系的基数是一种实际情况,没有硬性和通行证的规则来获得它.您需要做的是从关系的一侧开始,获取一个元组(实例),并查看来自另一个实体的多少个元组参与了该关系.然后反之亦然.那么您就知道从每个实体到关系的元组的参与数).当你决定基数(即一组教师、一组课程和一组教学关系类型)时,想想集合论和数学中的函数,这是很容易的,但如果你不是数学出身,只需考虑实际情况.

For Example

a) 对于一名讲师,他或她可以教授许多(M)课程

b)1门课程只有1名讲师

因此,在讲师方面,a)和b)中总是有1,但在课程中,a)和b)中有M和1):课程基数是1:m

Database相关问答推荐

如何使授权服务器与外部数据库保持同步?

如何高效地存储棋局?

DynamoDB 扫描 - 具有相同分区键的项目按顺序返回

第一次请求后数据库连接关闭

如何理解mysql explain 命令

什么是范围锁( range-locks)?

什么是非规范化 mysql 数据库的好方法?

在 MS SQL 中使用 GUID 作为主键是不是一个坏主意?

如何使用 INSERT ... ON CONFLICT ... 更新所有列?

处理hibernate entities上的数据库视图的优雅方法?

表别名如何影响性能?

连接字符串中超时

执行语句还是运行脚本?

Select * 和 Select [列出每个列] 之间有区别吗

如何在 liquibase 中标记变更集以进行回滚

QSqlDatabase & QSqlQuery 的正确方法是什么?

使用带有联合和 CLOB 字段的 Select 时出现错误 ORA-00932

Rails 控制台 - 查找在某天创建的位置

Oracle order NULL LAST 默认

自引用表上的 SQL 递归查询 (Oracle)