我遇到了一个关于MS Access中的主键和外键的问题。我有两个表,Customer和Sales。
客户有三个属性:
CustomerID (短文本是我的主键),
FirstName (短文本)
LastName (短文本)
Sales具有以下属性:
SalesID (Number)是主键
ProductID (number)应为外键
CustomerID (短文本)应为外键
(...)
现在我的问题来了:可能会有CustomerID的复制品,因为他们可以买几件东西。我不能将Sales表中的外键CustomerID设置为CustomerTable中的主键CustomerID,因为可能存在重复项。
你有什么办法解决这个问题吗?
发布于 2019-03-18 08:18:12
相关的子(从属)表通常会有父主键的重复项。这就是一对多或多对多关系的本质。依赖表中的父键值重复不是问题,而是数据库结构。
如果每个销售可以有多个商品,那么您需要另一个名为SaleDetails的表,其中包含字段:
SalesID_FK (长数字)
ProductID_FK (长数字)
数量(数字长整型)
Sales表将包含:
SaleID_PK (自动编号)
CustomerID_FK (长数字)
SaleDate (日期/时间)
对Customers中的主键使用自动编号:
CustomerID_PK (自动编号)
CustomerAcct (短文本)
等
https://stackoverflow.com/questions/55212549
复制相似问题