database - 关于 Microsoft Access 的问题 - 无法链接主键和外键
问题描述
我遇到了一个关于 MS Access 中主键和外键的问题。我确实有两张表,客户和销售。
客户具有三个属性:
CustomerID(短文本,我的主键),
FirstName(短文本)
LastName(短文本)
Sales 有以下属性:
SalesID(Number) 是主键
ProductID(number) 应该是外键
CustomerID(short text) 应该是外键
(...)
现在这是我的问题:CustomerID 可以重复,因为他们可以购买多个商品。我无法将销售表中的外键 CustomerID 设置为 CustomerTable 中的主键 CustomerID,因为可能存在重复项。
您对如何解决这个问题有任何想法吗?
解决方案
相关的子(从属)表通常具有父主键的副本。这是一对多或多对多关系的本质。依赖表中的父键值重复不是问题,数据库结构是问题。
如果每个销售可以有多个项目,那么您需要另一个名为 SaleDetails 的表,其中包含以下字段:
SalesID_FK(数字 - 长)
ProductID_FK(数字 - 长)
数量(数字 - 长)
销售表将具有:
SaleID_PK(自动编号)
CustomerID_FK(数字 - 长)
SaleDate(日期/时间)
在客户中使用自动编号作为主键:
CustomerID_PK(自动编号)
CustomerAcct(短文本)
等
推荐阅读
- python-3.x - 使用iter方法的无限循环
- sql - Postgres 在 where 子句中引用子查询结果
- r - 如何结合使用 igraph 生成的图形和通过 cowplot::plot_grid 使用 ggplot2 制作的绘图
- vue.js - 离子vue插件
- unit-testing - 使用 xunit 和 moq 的 net core api 控制器单元测试
- python - 脉冲星客户端无法安装
- c++ - 如何在算法中实现构建?
- python - 在 python 中创建生产者和消费者应用程序
- sql - SQL Server - 单个表上的多个插入导致死锁
- r - 根据单列查找所有唯一行并排除所有重复行