MySQL 如何设置一张表有两个不相关的主键,这两个主键分别都可以确定一条记录

2020-04-08 16:46:00 +08:00
 reaCodes
比如学生学号和姓名,学号列不能重复,姓名列我也想不要重复
1146 次点击
所在节点    程序员
9 条回复
jowan
2020-04-08 16:48:59 +08:00
主键只有一个
你可以设置学号为 primary key 姓名设为 unique
shenlanAZ
2020-04-08 16:49:04 +08:00
unique
rabbbit
2020-04-08 16:51:00 +08:00
sql 初学者的想法,可能有错误:
1 不要拿学号和姓名当主键.
2 给学号设置 UNIQUE
3 姓名可能会重复吧,不建议 UNIQUE
arthas2234
2020-04-08 16:55:02 +08:00
建立唯一索引
saulshao
2020-04-08 16:55:25 +08:00
你说的,一个叫主键,另外一个叫唯一索引......正如#3 提醒的,姓名的重复率其实非常高......
b821025551b
2020-04-08 16:57:37 +08:00
数据库设计守则之一:不要拿任何业务字段去设主键
reaCodes
2020-04-08 16:58:19 +08:00
@b821025551b 我是初学者,能详细说一下么
b821025551b
2020-04-08 17:03:28 +08:00
@reaCodes #7 3L 说的很对了,搞数据库的时候所有表增加一个 id 字段,当自增主键就好,千万别用业务字段去做主键;
另外如果是初学者的话,实际应用中和书本上还有挺多区别的,常见的就是别用外键,别用 enum,别用 float 。
jjianwen68
2020-04-08 17:21:42 +08:00
偌大的学校,还不准有几个同名的人吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/660498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX