优秀的编程知识分享平台

网站首页 > 技术文章 正文

数据库主键和外键

nanyue 2024-12-05 15:01:26 技术文章 9 ℃


主键和外键有什么区别?

主键(主码):主键用于唯一标识一个元组,不能有重复,不允许为空。一个表只能有一个主键。

外键(外码):外键用来和其他表建立联系用,外键是另一表的主键,外键是可以有重复的,可以是空值。一个表可以有多个外键。


为什么不推荐使用外键与级联?

对于外键和级联,阿里巴巴开发手册这样说到:【强制】不得使用外键与级联,一切外键概念必须在应用层解决。说明:以学生和成绩的关系为例,学生表中的 student_id 是主键,那么成绩表中的 student_id 则为外键。如果更新学生表中的 student_id,同时触发成绩表中的 student_id 更新,即为级联更新。外键与级联更新适用于单机低并发,不适合分布式、高并发集群; 级联更新是强阻塞,存在数据库更新风暴的风险; 外键影响数据库的插入速度

最近发表
标签列表