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