0
すべてのコードがテーブルに既に存在し、ユーザーがコードを償還するときprize_id
codes
code, user_id, prize_id
私は、user_idの上で一意のインデックスを持つ賞金コードを持つテーブルを持っていますuser_id = NULLのランダムコードが割り当てられます。
残念ながら、ユニークインデックスでは、user_idを割り当てずに同じprize_idを何度も追加できないため、これはうまくいきません。
NULLが重複と見なされるべきではないことを一意索引に伝える方法はありますか?
初期状態:
code, user_id, prize_id
A, NULL, 1
B, NULL, 1
C, NULL, 1
D, NULL, 2
E, NULL, 2
ユーザー1は、賞金2のコードを償還した後:
code, user_id, prize_id
A, NULL, 1
B, NULL, 1
C, NULL, 1
D, 1, 2
E, NULL, 2
NULLは、それはだ、値ではありません1つの不在。おそらく "No Prize"と呼ばれるIDをデフォルトにします。 –
@JacobHそれから私はまだユニークなインデックスと矛盾するという問題があります – Chris
これは役に立ちますか? https://stackoverflow.com/questions/767657/how-do-i-create-a-unique-constraint-that-also-allows-nulls –