我正在考虑改变一些表,以使用nvarchar(50)作为主键而不是int主键.使用int ID作为密钥真的是不相关的数据,它是我感兴趣的字符串,会发生什么样的性能,或者你在哪里研究?除了切,尝试就是.
解决方法
你已经打了数据库设计的主要“圣战”之一.你所说的辩论是“代理与自然键”的论证,只要已经有RDBMS(就像我可以说的那样)一直在肆虐.
辩论本质上归结于是否应该使用代表性的密钥(代理,例如IDENTITY列),而不是使用唯一描述记录的实际数据(自然密钥).
我会说没有“正确”的答案.绩效指标是平台的工具,应通过实验进行评估,但绩效不可能成为主要关注点.
我认为是替代键的主要参数是主键的不变性.如果您选择使用自然键,则可以在建立之后放弃更改该键的选项.你也放弃在未来的某个时刻变得不是独一无二的可能性.由于这些原因,我通常(不总是)使用代理键大多数表.
但是,正如我所说,如果你倾向于这样一个长期的辩论,充满讨论索引策略和正常形式的衔接.
我会把Google“代替自然键”.以下是几个可以让您开始的链接:
希望这可以帮助.