主键和外键

数据库设计
三范式: 列不可以拆分,唯一标识,引用主键
关系及存储: 1对1 , 1对多,多对多

主键:primary key
主键就是数据行的唯一标识。不会重复的列才会当主键
一个表中只能有一个主键.
当建立主键后,默认会建立索引,而实际数据在磁盘上存储的顺序和主键列的顺序是一致的。

主键选择策略:
1.业务主键:有业务意义的字段
2.逻辑主键:完全给程序看的,业余人员不会看的数据
推荐逻辑主键
组合主键:
选择单列作为主键(当通过多列共同唯一标识表中的一条记录的时候,此时可以选择多列来工作组成一个主键,这种主键叫做:组合主键、联合主键)一般不推荐使用。

尽量选择数字类型作为主键,不要选择字符串,或者数据类型比较大的列作为主键。

外键 ForeignKey

数据冗余的问题: 造成存储空间的浪费
更新异常、删除异常。
不希望数据冗余,该怎么解决?
把原来表中的数据拆分为多个表来存储。
当把表中的信息拆分成多个表来存储的时候会有一个问题:如何将这两张表中的数据关联起来?
使用主键和外键来进行关联。使用主外键就能将不同表中的数据关联起来。

外键: 把一张表中的主键添加到另一张表中,另一张表中的列就是数据的外键列,有外键列的表就叫做“外键表”,相对来说,主键被引用的那张表就叫做“主键表”。

学习永无止尽。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

冷月枫啊

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值