关系还能有关系吗?

Cod*_*ein 5 erd database-design database-diagrams

我有以下要求(作为更大系统的一部分)。

parts在数据库中,我需要维护销售这些零件的人员列表suppliers

许多suppliers可以销售相同的产品part,并且每个part可以由许多供应商销售。然而,价格各不相同。

在我的系统中,我应该能够跟踪我们购买特定产品的唯一一个supplierpart

按照我的想法,我需要实体Supplier和上的两个关系Part。一种关系Sells记录特定supplier携带特定part,反之亦然,另一种关系Purchase记录我们part从谁购买。

但是,我不会price两次记录该属性。我认为这将是不好的做法。因此,我问,我可以将一种关系与另一种关系联系起来吗?

我在下面提供了一个示例图。虚线是我不确定的。 ERD 与关系的关系

zdx*_*xai 4

您希望避免价格出现任何不一致 - 并且您已经在问题中指出了这一点。

我想说使用“定价”表来存储供应商零件(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)