【发布时间】:2011-09-21 16:10:44
【问题描述】:
我有一个存储用户信息的表。
在用户表中,用户名是唯一的。您认为我应该将用户名作为主键还是应该使用 int 的代理键?
使用字符串键会影响性能吗?
【问题讨论】:
-
这是引发宗教战争的问题。如果
username是逻辑模型中的一个键,它们会将其作为实现中的一个键,即至少是一个UNIQUE,也许是PRIMARY KEY。如果您有多个候选键,则应该实现所有候选键,并且选择哪个提升为“主要”是任意的。如果你选择添加一个代理,你首先需要一个自然键(username听起来很合理),但一定要知道为什么你认为你需要一个代理:)
标签: sql-server performance database-design indexing primary-key