простая таблица:
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
Я не думаю, что это возможно. Я бы отлавливал такие случаи в front-end, где пользователь вводит данные. Также, возможно, вы можете заменить оба поля двумя другими полями:
Поле category
типа enum
с возможными значениями «post» или «group». reference
Поле, содержащее идентификатор.
Таким образом, вы можете легко потребовать, чтобы оба поля были непустыми, и вы сможете ссылаться только на идентификатор записи или идентификатор группы.