我有一张gender
表:gender_id | gender_label
如果我删除gender_id
列,这是一个不好的做法,因为gender_label
也是唯一的并且可以用作主键吗?
我知道应该尽可能使用代理键,因为它们有效且快速搜索。但它会对上述情况产生任何影响吗?怎么样?
我写了数百张桌子。其中2/3有一个“自然”键; 1/3有一个“代理键”。
从那以后,我推断出你的问题的答案是“它取决于”。
好的,那又取决于什么?
UNIQUE
?如果是这样,可能你应该使用它。country_code
比4字节的INT
更好。在你的简单情况下,gender_id
字符串像M / F /等?这就是我要用的东西。实际上,我可能根本没有桌子;而在其他表中有gender
作为ENUM('unknown', 'male', 'female', 'other')