gpt4 book ai didi

没有主键但有外键的Mysql表

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:20 24 4
gpt4 key购买 nike

我在这里的某个地方读到,在每个表中都有主键是一件好事......假设我有两个表“student”和“student_details”,我正在使用 INNODB

“student”有几列,例如 - student_id(主键)、student_name“student_details”有几列,如 - student_id(外键)、地址、电话、手机等。

“student_details”还需要主键吗?

最佳答案

不管你知不知道,你所做的就是对表进行列分区。您可以让 studentdetails.studentid 既是主键又是外键。没问题。所以,你可以在表中有一个主键。

进行列分区的原因有很多,通常与常用列的性能有关,或者创建列数超过最大列数的行。我怀疑这些是否适用于您的情况。

事实上,鉴于数据的性质,studentdetails 表实际上存储的是一个“缓慢变化的维度”。用更简单的语言来说,学生搬家,所以他们的地址改变了。学生更改电话号码。等等。您真正应该拥有的是每个学生详细信息记录的生效日期和结束日期。然后你可以添加一个自动递增的主键(我会这样做)或者你可以声明 studentdetails(studentid, effdate) 作为主键。

关于没有主键但有外键的Mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23317452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com