关于数据库设计,我有一个普遍的问题。我们有数据表,其中列的on具有唯一的varchar值,它足以区分不同的行。但我认为我们也应该根据int值添加自动增量主键,我的同事不同意我的看法。 我的理由如下:
我的同事认为一个独特的关键就够了,谁是对的? 谢谢。
答案 0 :(得分:1)
这个问题是一场持续不断的辩论。
Surrogate vs. natural/business keys
https://www.google.com/search?q=natural+keys+vs+surrogate+keys
你提到"你需要维护varchar值的列"我读到这意味着你会发现经常改变自然键。在这种情况下,它不是一个自然的关键。
另一方面,你提到它是一个员工ID,通常是一个自然的关键。鉴于数据是从外部传入的,除非是自然键,否则你很难维护你的桌子。
阅读Joe Celko和Chris Date关于钥匙的想法并自己决定。