這裏是我的表:有趣的SQL結構:主鍵的一部分可能是NULL
PRODUCT_ID (pk) | GROUP_ID (pk) | PRICE
這一點,我會設定不同的價格的產品與不同的用戶。如果價格適用於每個組,則GROUP_ID將爲NULL。但是這是一個PK - 它不能爲NULL。 PRODUCT_ID不能是PK獨立的,因爲可以有更多不同價格的產品。那麼如何躲避它?
這裏是我的表:有趣的SQL結構:主鍵的一部分可能是NULL
PRODUCT_ID (pk) | GROUP_ID (pk) | PRICE
這一點,我會設定不同的價格的產品與不同的用戶。如果價格適用於每個組,則GROUP_ID將爲NULL。但是這是一個PK - 它不能爲NULL。 PRODUCT_ID不能是PK獨立的,因爲可以有更多不同價格的產品。那麼如何躲避它?
正如你所說,不可能將表的主鍵作爲NULL。我建議你有一些'特殊'的值(很像NULL,就像其他有效的那樣),這表明所述價格適用於所有組(例如~0
,如果您使用INT UNSIGNED
作爲GROUP_ID
的類型)。
我建議使用自己的ID創建一個「全局」組。即使您可以設置group_id
到null
,感覺也會更好。所以每個小組都獲得了自己的獎勵和「全球」組的價格作爲補充。
1 | 1 | 10,50
2 | 2 | 15,50
2 | 3 | 15,70
如果組ID 1
是「全局」組,組1
和2
將有一個價格10,50
ID爲1
產品。