一個簡單的表:
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
我認為這是不可能的。我會在用戶輸入資料的前端捕獲此類情況。此外,您也許可以將這兩個欄位替換為其他兩個欄位:
可能值為「post」或「group」category
類型的欄位包含ID 的欄位。enum
reference
這樣您就可以輕鬆要求兩者都非空,並且只能引用帖子 ID 或群組 ID。