常见的多表设计: 一对多 ,一对一 , 多对一

多表设计

多表设计的业务关系主要分为三种:

  • 一对多
  • 一对一
  • 多对一

1.外键

外键的作用是在多表设计中,将表与表关联起来

1.1物理外键

使用 forgign key 关联另一张表

  1. 创建表时指定
-- 创建表时添加物理外键
create table 子表名(
	添加其他字段,
	[constraint] [外键名称] foreign key (外键字段名) references 主表名(主表字段名)
	添加其他字段
)
  1. 建表完成后添加外键
-- 建表完成后添加外键
alter table 子表名 add constraint 外键名称 foreign key 外键字段名) references 主表名(主表字段名)

注意!!!

  • 子表,要添加外键的表
  • 外键名称,描述哪两个表之间发生关系(而可以理解为comment)
  • 外键字段名,字段名
  • 主表,外键要连接的表
  • 主表字段名,通过子表外键与主表连接起来的字段

1.2逻辑外键

只在逻辑上存在关系,数据库物理层面并没有关系

2.一对多

两张表存在一对多的关系:部门与员工

  1. 一个部门可以有很多员工
  2. 一个员工只能属于一个部门

设计实现:
在员工的一方增加字段关联部门的一方的主键

3.一对一

两张表存在一对多的关系:用户与身份证、

  1. 一个用户只能有一个身份证
  2. 一个身份证只能对应一个用户

设计实现:
在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)

4.多对多

两张表存在一对多的关系:学生和课程

  1. 一个学生可以选很多课程
  2. 一个课程也可以被很多学生选

设计实现:
建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖阳爱学计算机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值