在 Access 中添加或更改表的主键

在 Access 中添加或更改表的主键

Access 中的主键概述

Access 使用主键字段快速关联多个表中的数据,并以有意义的方式组合这些数据。 可以包含其他表中的主键字段以向回引用主键源的表。 在这些其他表中,字段称为外键。 例如,“客户”表中的“客户 ID”字段也可能会显示在“订单”表中。 在“客户”表中,它是主键。 而在“订单”表中,它被称作外键。 简而言之,外键就是另一个表的主键。 有关详细信息,请参阅数据库设计基础。

1. 主键

2. 外键

如果将现有数据移到数据库中,您可能已经拥有了可用作主键的字段。 通常,唯一的标识号(如 ID 号、序列号或代码)充当表中的主键。 例如,您可能有一个“客户”表,其中每个客户都有一个唯一的客户 ID 号。 客户 ID 字段是主键。

Access 会自动为主键创建索引,这有助于加快查询和其他操作的速度。 Access 还确保每条记录的主键字段中都有一个值,并且该值始终是唯一的。

在数据表视图中创建新表时,Access 自动创建主键,并且为它指定字段名“ID”和“自动编号”数据类型。

什么是好的主键?

一个好的候选主键具有以下几个特征:

唯一标识每一行

从不为空或为 Null,即它始终包含一个值

所包含的值几乎不(理想情况下永不)改变

如果无法识别好的键,则创建“自动编号”字段用作键。 “自动编号”字段在首次保存每条记录时,会自动为自己生成一个值。 因此,“自动编号”字段满足一个好的主键的所有三个特征。 有关添加“自动编号”字段的详细信息,请参阅添加“自动编号”字段作为主键一文。

“自动编号”字段是一个好的主键。

较差主键的示例

缺少一个或多个好的候选主键特征的任何字段对于主键都是糟糕的选择。 下面是会让“联系人”表的主键成为较差主键的几个字段示例,以及成为糟糕选择的原因。

较差主键

原因

个人姓名

可能不确定唯一,还可能改变

电话号码

可能会改变。

电子邮件地址

可能会改变。

邮政编码

可能多人共享一个邮政编码

事实和数字的组合

事实部分可能有所变化,带来维护负担。 如果事实部分作为单独字段重复,则可能导致混乱。 例如,将城市和增量号码(例如 NEWYORK0579)组合在一起,如果城市也存储为字段,则是糟糕的选择。

社会保障号

政府部门和一些组织不允许隐私信息。

某些用户没有 SSN

个人一生中可能使用多个

复合键:将多个字段组合在一起作为主键使用

某些情况下,你希望将表中的两个或多个字段用作主键。 例如,存储订单行项目的“订单明细”表可能在其主键中使用两个字段:“订单 ID”和“产品 ID”。 具有多个字段的键称为组合键。