ここに私のテーブルがあります:
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
group id1
が「グローバル」グループの場合、 group1
およびはid の製品2
の価格を持ちます。10,50
1