【发布时间】:2013-04-09 18:16:28
【问题描述】:
我们有一个小型 SQL SERVER 2000 数据库,用于导入 - 交易商品并为其扩展新功能。我对实施正确的 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查询 从 Truck Table 到 Contract Table 直到我们得到ProductID和SupplierID然后 这是一个很长的查询。你怎么看? - 您如何看待数量控制?库存是用计算的 报告中的字段。
问题 1 和 2 对我们进一步前进非常重要。感谢您的帮助。
【问题讨论】:
-
每个合同只能有一种产品吗?
标签: model many-to-many