E-R图设计时,实体间(一对多)和(多对一)关系,外键如何加?

E-R图设计时,实体一对多和多对一关系,外键如何加?

数据模型的类型:概念数据模型、逻辑数据模型、物理数据模型。

相关概念参考:https://blog.csdn.net/chktsang/article/details/121013225

一.一对多关系

1.概念模型
在这里插入图片描述
对于上面的多对一(或一对多)关系,多的一方一般保留一的一方的主键。

2.逻辑模型

1)学生表(学生学号,学生姓名,班级编码)
Student(stuId(K),stuname,clsId(Fk))

其中,K代表主键,Fk代表外键。

2)班级(班级编码,班级名称)
Class(clsId,clsname)

3.物理模型

1)Student(
stuId int PRIMARY KEY ,
stuname varchar(255) ,
clsId int
FOREIGN KEY (clsId) REFERENCES Class(clsId)
);

  1. Class(
    clsId int PRIMARY KEY,
    clsname varchar(255)
    );

二.多对多关系

1.概念模型

在这里插入图片描述

对于上面的多对多关系,需要重新建立一张表存储学生表主键和课程表主键。

2.逻辑模型

1)学生表(学生学号,学生姓名)
Student(stuId(K),stuname)

其中,K代表主键,Fk代表外键。

2)课程(课程编码,课程名称)
Course(csId(K),csname)

3)学生和课程关系
Student_Class(stuId,csId)

3.物理模型

1)Student(
stuId int PRIMARY KEY ,
stuname varchar(255)
);

2)Course(
csId int PRIMARY KEY ,
csname varchar(255)
);

3) Student_Class(
stuId int,
csId int
);

参考链接:https://blog.csdn.net/rej177/article/details/131566740

设计表字段时,字段之间使用逗号分隔,而不是顿号。

ER中的表示实体的关联关系,通常通过连线特定符号来表达这种关系。以下是绘制ER的一般步骤及注意事项: 1. **确定实体关系** 首先明确两个实体存在何种类型的关联(如一对一一对)。例如,“订单”“客户”的关系可能是“一个客户可以有个订单”,这是典型的“一对关系。 2. **标识主** -是用来唯一识别某个记录的字段,在ER上一般会用下划线或其他标记突出显示。 - 则是用于建立与其他表中主连接的一个字段。在设计需要标明哪些属性作为引用其他实体的主。 3. **如何绘制连接** 使用箭头或者线条将包含实体指向它所参照的另一个实体,并标注出具体的名以及对应目标端的主名称。为了清晰起见,还可以在附近注明其约束条件比如`ON DELETE CASCADE`(删除级联)等SQL特性说明文字。 4. **形化约定** 根据选用的标准(如IE标准、Chen模型),可以用不同的样式表现出来: - 如果采用简单直线,则从依赖方(含一方)画一条实线连向主导方(含主那一侧) - 某些工具还允许设置菱形节点代表各种联系类型,此可以在适当位置放置相应形状辅助解释 5. 示例描述 假设我们有两个表格——"部门"(DepartmentID为主) "员工"(EmployeeID为主, DepartmentID为) ``` +-------------------+ 0..n +--------------------+ | 部门 |-------------->| 员工 | +----+-------------+ +-+------------------+--+ ^ ^ (PK) (FK) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值