Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 有关Microsoft Access的问题-无法链接主键和外键_Database_Ms Access - Fatal编程技术网

Database 有关Microsoft Access的问题-无法链接主键和外键

Database 有关Microsoft Access的问题-无法链接主键和外键,database,ms-access,Database,Ms Access,我遇到了一个关于MS Access中主键和外键的问题。我有两张桌子,顾客桌和销售桌 客户有三个属性: CustomerID短文本是我的主键, 名短文本 LastName短文本 销售具有以下属性: SalesID号是主键 ProductID号应为外键 CustomerID短文本应为外键 现在我的问题来了:CustomerID可以复制,因为他们可以购买多个项目。我无法将Sales表中的外键CustomerID设置为CustomerTable中的主键CustomerID,因为可能存在重复项 您知道如

我遇到了一个关于MS Access中主键和外键的问题。我有两张桌子,顾客桌和销售桌

客户有三个属性: CustomerID短文本是我的主键, 名短文本 LastName短文本

销售具有以下属性: SalesID号是主键 ProductID号应为外键 CustomerID短文本应为外键

现在我的问题来了:CustomerID可以复制,因为他们可以购买多个项目。我无法将Sales表中的外键CustomerID设置为CustomerTable中的主键CustomerID,因为可能存在重复项


您知道如何解决这个问题吗?

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

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

SalesID_FK编号-长 ProductID_FK编号-长 数量编号-长

销售表应包括:

SaleID_PK自动编号 CustomerID\u FK编号-长 销售日期/时间

对客户中的主键使用自动编号:

客户ID\U PK自动编号 CustomerAcct短文本
etc

我无法将Sales表中的外键CustomerID设置为CustomerTable中的主键CustomerID,因为可能存在重复项是的,您可以。这是外键的用途。请提供一些示例数据来说明问题。为什么使用文本字段作为PK和FK?表在Access或SQLServer中吗?非常感谢您对大家的友好帮助,尤其是6月7日。