一个简单的表格:
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。