是否可以使用主键的字符值?

Ran*_*ess 4 database optimization schema database-design normalization

与使用基于字符的表格相比,在数据库表中使用唯一的数字ID字段时,是否有性能提升或最佳实践?

例如,如果我有两个表:

运动员

id ... 17,名字 ...... Rickey Henderson,teamid ...... 28

球队

teamid ... 28,teamname ... 奥克兰

如果队友是"OAK"或"SD"而不是"28"或"31" ,那么拥有数千名球员的运动员桌将更容易阅读.让我们理所当然地认为,teamid值在字符形式上将保持唯一且一致.

我知道你可以使用字符,但是出于任何原因索引,过滤等是一个坏主意吗?

请忽略规范化参数,因为这些表比示例更复杂.

bri*_*ian 16

我发现无效数字的主键从长远来看会减少头痛.


Sql*_*yan 3

我不会使用文本作为密钥 - 将来当您想要更改某个团队的团队 ID 时会发生什么?当主键可以避免这种情况时,您必须在整个数据中级联该键更改。另外,虽然我没有任何经验证据,但我认为 INT 键会比文本键快得多。

也许您可以为数据创建视图,使其更易于使用,同时仍然使用数字主键。