Cod*_*ein 5 erd database-design database-diagrams
我有以下要求(作为更大系统的一部分)。
parts
在数据库中,我需要维护销售这些零件的人员列表suppliers
。
许多suppliers
可以销售相同的产品part
,并且每个part
可以由许多供应商销售。然而,价格各不相同。
在我的系统中,我应该能够跟踪我们购买特定产品的唯一一个。supplier
part
按照我的想法,我需要实体Supplier
和上的两个关系Part
。一种关系Sells
记录特定supplier
携带特定part
,反之亦然,另一种关系Purchase
记录我们part
从谁购买。
但是,我不会price
两次记录该属性。我认为这将是不好的做法。因此,我问,我可以将一种关系与另一种关系联系起来吗?
我在下面提供了一个示例图。虚线是我不确定的。
您希望避免价格出现任何不一致 - 并且您已经在问题中指出了这一点。
我想说使用“定价”表来存储供应商零件(PK)和价格(浮点值或小数值等)。
这样,来自不同供应商的每个零件都有不同的价格。换句话说,价格取决于零件是什么以及供应商是谁(供应商零件是主键或唯一索引)。
采购表应仅包含此新“定价”表中的记录 - 该表链接到来自零件、供应商和价格的所有信息。
说得通?
编辑:我刚刚注意到。当您已经在销售表中关联零件和供应商时,您将在采购表中再次关联零件和供应商。
只要有这4张表:
Parts: PartID (PK), PartName
Suppliers: SupplierID (PK), SupplierName
Pricing: (PartID,SupplierID) (Unique Index of these two Foreign Keys), Price
Purchases: PurchaseID (PK), (PartID,SupplierID) (Foreign Key), Quantity
Run Code Online (Sandbox Code Playgroud)