如果我有一个名为 university
的表,其中有两个字段,一个用于 id_university
,即 PK,另一个用于 name_of_university
。每个大学的名称都是唯一的,不能重复。
在这种情况下,我可以删除 id_university
,并将 name_of_university
作为主键,对吗?
像这样:
表格
university
-----------------------
pk name_of_university
谢谢
最佳答案
你可以这样做,但你不应该这样做。大学的名称是业务 key ,因此可能会更改。识别候选主键的标准之一是它们应该是不变的。
因此,最佳做法是拥有一个代理(合成)主键,用于外键等,并对业务键保持唯一约束。所以,好消息是,您当前的数据模型接近最佳实践。只需在名称列中添加唯一性即可。
alter table university
add constraint uni_name_uk unique (name_of_university);
关于mysql - 在表中更改我的 PK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5927870/