首页 > 解决方案 > 关于 Microsoft Access 的问题 - 无法链接主键和外键

问题描述

我遇到了一个关于 MS Access 中主键和外键的问题。我确实有两张表,客户和销售。

客户具有三个属性:
CustomerID(短文本,我的主键),
FirstName(短文本)
LastName(短文本)

Sales 有以下属性:
SalesID(Number) 是主键
ProductID(number) 应该是外键
CustomerID(short text) 应该是外键
(...)

现在这是我的问题:CustomerID 可以重复,因为他们可以购买多个商品。我无法将销售表中的外键 CustomerID 设置为 CustomerTable 中的主键 CustomerID,因为可能存在重复项。

您对如何解决这个问题有任何想法吗?

标签: databasems-access

解决方案


相关的子(从属)表通常具有父主键的副本。这是一对多或多对多关系的本质。依赖表中的父键值重复不是问题,数据库结构是问题。

如果每个销售可以有多个项目,那么您需要另一个名为 SaleDetails 的表,其中包含以下字段:

SalesID_FK(数字 - 长)
ProductID_FK(数字 - 长)
数量(数字 - 长)

销售表将具有:

SaleID_PK(自动编号)
CustomerID_FK(数字 - 长)
SaleDate(日期/时间)

在客户中使用自动编号作为主键:

CustomerID_PK(自动编号)
CustomerAcct(短文本)


推荐阅读