选择一个主键

请勿使用邮政编码或社会安全号码

数据库依赖于密钥来存储,排序和比较或创建记录之间的关系。 如果你已经在数据库中呆了一段时间,你可能听说过不同类型的键:主键, 候选键外键 。 当您创建新的数据库表时,系统会要求您选择一个主键 ,以唯一标识存储在该表中的每条记录。

为什么主键很重要

主键的选择是您在设计新数据库时要做的最重要的决定之一。 最重要的约束是您必须确保所选密钥是唯一的。 如果可能两个记录(过去,现在或将来)可能共享一个属性的相同值,那么对于主键来说这是一个糟糕的选择。

主键的另一个重要方面是由关系数据库中的其他表格使用。 在这方面,主键就像一个指针的目标。 由于这些相互依赖性,创建记录时必须存在主键,并且永远不会更改。

主键的选择不佳

有些人可能会认为主键的明显选择可能是一个糟糕的选择。 这里有一些例子:

选择一个有效的主键

那么,什么使得一个好的主键? 在大多数情况下,请转到您的数据库系统寻求支持。

数据库设计的最佳做法是使用内部生成的主键。 您的数据库管理系统通常可以生成一个在数据库系统之外没有意义的唯一标识符。 例如,您可能使用Microsoft Access AutoNumber数据类型创建一个名为RecordID的字段。 自动编号数据类型会在您每次创建记录时自动增加字段。 虽然数字本身没有意义,但它提供了一种可靠的方式来引用查询中的单个记录。

一个好的主键通常很短,使用数字,并且避免使用特殊字符或大小写字符组合,以便快速进行数据库查找和比较。