关系数据库的表设计

开发中抽象出来的各个实体之间的关系有:一对一,一对多,多对多 三种,在设计表的时候 先考虑是哪种情况,然后再看看怎么建表。

  1. 一对一。通常建表时建立 2 个表(主副表),外键建立在附表中。例如下图,可建立学生表和身份证表。
    在这里插入图片描述
    2.一对多。建立 2 个表,将 “一” 的一方的主键作为 “多”的一方的外键。(后面说为什么)
    在这里插入图片描述
    3.多对多。建立 3 个表,除了两个实体所建的两张表外,再建一张表(关系表):将两个实体的主键作为属性,并为该表创建一个自己的id。
    在这里插入图片描述

补充:(来自https://www.cnblogs.com/yonyong/p/9227558.html)
关于主外键及多表联系的进一步理解:

主外键的存在是依托两个实体之间的关系而存在的;

比如班级与学生的关系:

一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;

那么设计数据库的时候就应该在学生表内存放班级的ID作为外键,为什么不在班级表内放学生呢?

因为,你想一想班级表内如果放学生那么记录可能就是这样:

1班ID 1班 xx同学id

1班ID 1班 xx同学id

这是不允许的,班级表内班级为主键,是唯一的不允许相同记录的;
(图来自网络)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值