微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在考虑改变一些表,以使用nvarchar(50)作为主键而不是int主键.使用int ID作为密钥真的是不相关的数据,它是我感兴趣的字符串,会发生什么样的性能,或者你在哪里研究?除了切,尝试就是.

解决方法

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

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

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

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

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

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

Systems Engineering and RDBMS

Techrepublic

Tony Rogerson’s blog

希望这可以帮助.

原文地址:https://www.jb51.cc/mssql/81536.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐