【发布时间】:2010-10-01 12:46:58
【问题描述】:
与使用基于字符的字段相比,在数据库表中使用唯一的数字 ID 字段是否有性能提升或最佳实践?
例如,如果我有两个表:
运动员
id ... 17, 姓名 ... Rickey Henderson, teamid强> ... 28
团队
teamid ... 28, teamname ... 奥克兰
如果 teamid 是“OAK”或“SD”而不是“28”或“31”,则包含数千名球员的运动员表会更容易阅读。让我们理所当然地认为 teamid 值将在角色形式上保持独特和一致。
我知道您可以使用字符,但是出于某种原因,索引、过滤等是否是个坏主意?
请忽略规范化参数,因为这些表比示例更复杂。
【问题讨论】:
-
合成与自然键参数 rehash,也是 stackoverflow.com/questions/144109/… 的副本,另请参阅 stackoverflow.com/search?q=synthetic+key
-
值得注意的是,您说的是字符字段,而不是 MSSQL 的“文本”类型,我认为它是不可索引的。
标签: database database-design optimization schema normalization