sql-server – SQL Server 2005会惩罚我使用nvarchar(50)作为主键,而不是整数吗?

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server 2005会惩罚我使用nvarchar(50)作为主键,而不是整数吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在考虑改变一些表,以使用nvarchar(50)作为主键而不是int主键.使用int ID作为密钥真的是不相关的数据,它是我感兴趣的字符串,会发生什么样的性能,或者你在哪里研究?除了切,尝试就是.

解决方法

你已经打了数据库设计的主要“圣战”之一.你所说的辩论是“代理与自然键”的论证,只要已经有RDBMS(就像我可以说的那样)一直在肆虐.

辩论本质上归结于是否应该使用代表性的密钥(代理,例如IDENTITY列),而不是使用唯一描述记录的实际数据(自然密钥).

我会说没有“正确”的答案.绩效指标是平台的工具,应通过实验进行评估,但绩效不可能成为主要关注点.

我认为是替代键的主要参数是主键的不变性.如果您选择使用自然键,则可以在建立之后放弃更改该键的选项.你也放弃在未来的某个时刻变得不是独一无二的可能性.由于这些原因,我通常(不总是)使用代理键大多数表.

但是,正如我所说,如果你倾向于这样一个长期的辩论,充满讨论索引策略和正常形式的衔接.

我会把Google“代替自然键”.以下是几个可以让您开始的链接

Systems Engineering and RDBMS

Techrepublic

Tony Rogerson’s blog

希望这可以帮助.

猜你在找的MsSQL相关文章