0

这是我的桌子:

PRODUCT_ID (pk) | GROUP_ID (pk) | PRICE

有了这个,我会为不同用户的产品设置不同的价格。如果价格适用于每个组,则 GROUP_ID 将为 NULL。但这是一个 PK - 它不能为 NULL。PRODUCT_ID 不能单独PK,因为可以有更多不同价格的产品。那怎么躲呢?

4

2 回答 2

2

正如您所说,不可能将表的主键设置为 NULL。我建议您有一些“特殊”值(很像 NULL 只是其他有效的值),这表明所述价格适用于所有组(例如~0,如果您将INT UNSIGNED其用作您的类型GROUP_ID)。

于 2012-08-09T11:53:02.280 回答
1

我建议创建一个具有自己 ID 的“全局”组。即使您能够设置group_id为. 这感觉好多了null。所以每个组都有自己的奖品和“全球”组的价格作为加法。

1 | 1 | 10,50
2 | 2 | 15,50
2 | 3 | 15,70

如果 group id1是“全局”组,则 group1和id 为产品2的价格。10,501

于 2012-08-09T11:57:47.070 回答