正确创建表关系

时间:2015-09-28 19:11:55

标签: sql database database-design database-schema

我有一张发票创建表单,我的任务是希望用户能够根据用户之前的选择限制客户从数据库中选择数据。

我的限制是每家公司都可以访问所有产品,但相同产品的价格对于不同的公司会有所不同。此外,每种产品可能有不同的尺寸,价格也不同。

需要帮助理解创建这些类之间连接的逻辑。

例如我的实体:
Company (attributes: CustID, Name, ShipTo, SoldTo, City, State, ZipCode)

Product (attributes: UN, Name, Hazard, Packing Class, Grade, Weight, Unit Type)

现在每种产品都有多种尺寸,每种尺寸都有许多与之相关的产品。因此,我创建了一个标题为Type的联结表,其中包含属性SizeUN,并在“产品”和“类型”表格中进行了链接。

然后我创建了另一个联结,因为每个公司都可以拥有相同的产品,并且每个产品都可以销售给许多公司,并使用属性CustProductCustID将其命名为UN并将其关联到产品表和公司表。

现在我感到困惑,我是如何以及在何处创建一种关系,以便将product的唯一价格链接到特定size的可确定Company?对此持怀疑态度。

2 个答案:

答案 0 :(得分:1)

从你的意思来看,这就是我的想法:

  • 您的“公司”和“产品”实体看起来很好。
  • “类型”表应具有以下属性:UN,SizeID,SizeName(其中键为UN,SizeID)
  • 最终联结“CustProduct”不应位于公司和产品之间,而应位于公司和类型表之间,具有以下属性:CustID,UN,SizeID,Price。

这意味着每家公司都可以为每种产品的每种尺寸指定价格。

我希望有所帮助。

答案 1 :(得分:0)

enter image description here

公司和产品表之间存在多对多的关系。通过这样做,每个产品具有不同的尺寸和价格取决于具体的公司

我认为您可以通过实施此结构来实现目标。