【发布时间】:2014-08-27 04:33:38
【问题描述】:
我有四张桌子,
DiscountCode 描述折扣。
基本上作为产品出售的捆绑包,因此它包含产品代码
作为产品出售的产品,因此它还包含产品代码
ProductDiscount 代码旨在用于描述捆绑/产品可以有多个与之关联的折扣代码这一事实。
**Discount Code**
Id
Name
Code ex. SUMMER10 ie 10% off summer products
...
**Bundles**
Id
Name
ProductCode *Unique* Ex..ABC123
...
**Products**
Id
Name
ProductCode *Unique* Ex.. XYZ1234
...
**ProductDiscountCode**
DiscountId
ProductCode FK to both Products.ProductCode AND Bundles.ProductCode
Records in ProductDiscountCode:
1 ABC123
1 XYZ1234
1 URS576 <-- prevent this if Prod or Bundle does NOT contain URS576
我的问题是关于三元表中的 ProductCode。现在请记住 PELASE SQL 不是我的强项!三元表中的 ProductCode 列是否可以/应该外键到两个单独的表,以试图将其内容限制为包含在 Bundle 表或 Product 表中的产品代码,假设 bundles 和 products 中的产品代码是唯一的在两个表之间(由业务规则强制执行)。还是ProductDiscountCode表需要以下的
**ProductDiscountCode**
DiscountId
ProductCode FK to ProductCode in Product
BundleCode FK to ProductCode in Bundle
【问题讨论】:
-
如果你在做表设计,SQL需要成为你的强项。
标签: sql sql-server