外键、超键、候选键

外键、超键、候选键

外键

外键:指向另一张表的主键

Foreign key(外键字段) references 表(主键)

子表(外键所在)外键不能指向不匹配的父表主键

父表主键不能随意更改,默认为严格模式,不能删除或更新记录,级联模式,父表更新记录子表也更新,置空模式,父表更新记录子表关联数据置空

外键的两端必须类型相同,至少存在一对相同的数据,表中外键名不能重复,存储引擎必须是innodb

不推荐使用外键,原因在于外键会对删除和更新操作造成限制,导致开发和测试困难,而且会造成性能浪费、并发问题,不加外键数据迁移分库分表会更方便,从本质上讲,使用外键完全在应用程序上实现逻辑,无需借助数据库,否则会造成数据库性能下降,毕竟数据库的主要工作是存储和快速查询

超键

超键:如果有一学生表(学号,姓名,性别,身份证号),那么含有学号或身份证号的任何字段组合都是超键,比如(学号)、(学号,姓名)、(身份证号、性别),这样的组合可以唯一标识一条记录。(但是学号和身份证号不一定是复合主键,它们中的一个可能会被定义成主键)

候选键

候选键:超键中的最小集,如果去掉任意一个字段就不再是超键了,那么这个超键就是候选键,如(学号)、(身份证号)

转载于:https://www.cnblogs.com/shizhuoping/p/11561800.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值