我们有一个小型的数据库,用于导入 - 交易货物并向其中扩展新功能。我有混淆实施正确的PK - FK关系。多对多 - 非识别关系数据模型
有三个表,我们有:
Contract (ContractID (PK), SupplierID (FK), ProductID(FK), Date, Quantity, Price)
SupplierInvoice (SupplierInvoiceID (PK), ContractID (FK) , ImportID (FK) , InvoiceNo, Date,Quantity)
Import (ImportID (PK) , Date)
Truck (TruckID (PK), ImportID (FK), CustomerID (FK), Date, Quantity)
说明:
这些都是散装产品,也没有包装,只是数量。
- 所有PK的是代理(自动增量)
- 有了一个合同,我们可以有0到许多发票和一张发票可以属于只有一个合同。 (0发票将在几天内为1)
- 随着一对多的发票,你做0到1的进口。 (0进口将是1,并在几天内只有一个) (许多发票意味着可能有部分合同结束和开始。)
- 数量:合同一个合同的发票数量不能超过合同数量。我们建立触发器来控制这个。导入数量与发票数量完全相同。
问题:
- 这是模型(PK和FK的),以正确的方式)?你怎么看?
- 进口后,我们将货物装载到我们已经进口的卡车上,因此我们应该输入 哪个产品是我们要从哪个供应商加载的。如果我们开始制作
JOIN
查询 从卡车表到合同表,直到我们得到ProductID
和SupplierID
然后 这是一个很长的查询。你怎么看? - 您如何看待数量控制?库存是通过报告中计算的 字段来计算的。
问题1和问题2对我们进一步推进非常重要。感谢您的帮助。
每个合同只能有一个产品吗? – Craig