MySQL、2 つのフィールドが NULL または NOT NULL になるのを防ぐことは可能ですか?

MySQL、2 つのフィールドが NULL または NOT NULL になるのを防ぐことは可能ですか?

簡単な表:

ID, NAME, POST_ID, GROUP_ID

POST_IDまたはGROUP_IDのいずれかを設定する必要がありますが、両方を設定することも、どちらも設定しないこともできません。

有効なケースがあります:

ID, NAME, POST_ID, GROUP_ID
x,   y,   1,       NULL
x,   y,   NULL,    4

無効なケース:

ID, NAME, POST_ID, GROUP_ID
x,   y,   NULL,    NULL
x,   y,   4,       4

このような複雑な制限ルールを設定することは可能ですか?

答え1

それは不可能だと思います。ユーザーがデータを入力するフロントエンドでそのようなケースをキャッチします。また、両方のフィールドを他の 2 つのフィールドに置き換えることもできます。

'post' または 'group' の値が可能なcategoryタイプのフィールド。IDを含むフィールド。enumreference

こうすることで、両方が空でないことを要求しやすくなり、投稿 ID またはグループ ID のみを参照できるようになります。

関連情報