..


赞助商链接

使用和管理标识列在SQL Server

由Vincent Gaglio写文章
第1页3

当设计一个数据库,以支持应用程序是必须考虑如何处理主键。 有在这方面至少有两个学派:一个是认为,正确的做法是使用所谓的代理键 (即不是真实数据为基础),另一个必须使用,而不是真实的数据作为索赔键值。 再有就是这中间的道路“一数据库内的这些解决方案都使用上的相对优劣而定,(我们将很快)组成。

当设计一个表通常包含一个或多个列组成的主键。 我们知道一个表的主键是一个值(或值的组合)的唯一标识每一行。 如前所述,如果一个关键是由实际值被称为天然的关键,但如果例如,关键是产生每次插入它被称为代理键的表行。 代理键通常是在SQL Server中的数值而且往往这种类型的列的身份,其中有后。

自然关键是由真实的数据,有一个在该行的其他列(如在客户表中也包含其一般性的个人税代码)值的关系,即数据。 即使是代理键唯一标识表中的行,但它的价值已经没有其他值的行关系,那简直是生成和存储。

我们分析了密钥的两个代孕开始类型的优缺点:

在PRO

  • 代理键已经与其他数据线没有关系
  • 如果你需要对数据库有关的,可以很容易在不损害外键关系做,自然键更新变化,如果后者不是自然键,但在一个替代的
  • 该代理键通常是整数值,因此只需要四个字节以这种方式使结构更小的存储性能指标(其中有一个连接操作正面影响)

反对的

  • 如果用一个值替代外键链接的表链接到主表,以获取连接各个表之间的实际值,您必须加入行动
  • 代理键是不是很有用,当寻找特定信息,其中所含的值都没有实际意义

至于自然键:

在PRO

  • 借给自己去研究,因为有实际意义的价值观
  • 需要较少的步骤来连接键的值,因为他们是连接中涉及的所有表中包含
  • 借给自己去研究,因为有实际意义的价值观

反对的

  • 它是更加复杂的更新,特别是如果与其他表的外键关系是基于他们的
  • 索引承担更大,因为自然键通常需要更多的字节来存储
  • 加入复合材料的基础上(通常包括字符串数据)自然键比用代理键所作出的慢
在同一类...
电子学习
MS访问(高级) MS访问(高级)
了解如何创建和管理数据库迅速和容易。 起价29€。
MySQL的(课程) MySQL的(课程)
管理的开放源码数据库。 从39€。
SQL和数据库(课程) SQL和数据库(课程)
创建和管理关系数据库。 从39€。
赞助商链接