如果我的列具有唯一的varchar值,是否需要自动增加int值主键?

时间:2014-05-21 13:22:50

标签: database db2

关于数据库设计,我有一个普遍的问题。我们有数据表,其中列的on具有唯一的varchar值,它足以区分不同的行。但我认为我们也应该根据int值添加自动增量主键,我的同事不同意我的看法。 我的理由如下:

  1. 使用int值比varchars值更便宜。
  2. 基于int键的表之间的互连更容易接受。
  3. 我的同事认为一个独特的关键就够了,谁是对的? 谢谢。

1 个答案:

答案 0 :(得分:1)

这个问题是一场持续不断的辩论。

Surrogate vs. natural/business keys

https://www.google.com/search?q=natural+keys+vs+surrogate+keys

你提到"你需要维护varchar值的列"我读到这意味着你会发现经常改变自然键。在这种情况下,它不是一个自然的关键。

另一方面,你提到它是一个员工ID,通常是一个自然的关键。鉴于数据是从外部传入的,除非是自然键,否则你很难维护你的桌子。

阅读Joe Celko和Chris Date关于钥匙的想法并自己决定。