В SQL существует ли способ обеспечить, чтобы только один столбец из группы столбцов имел значение, а остальные были пустыми? Может быть, ограничение или триггер? Этот тип вещей может быть для таблицы поиска, но есть ли альтернативные схемы таблиц, которые могли бы сделать это лучше?
Например:
ID OtherTable1ID OtherTable2ID OtherTable3ID
-----------------------------------------------------
1 23 NULL NULL
2 NULL 45 NULL
3 33 55 NULL -- NOT ALLOWED
Основная проблема заключается в том, что эти столбцы представляют собой все FK для других таблиц, поэтому я не могу свернуть их до одного столбца.
Я использую SQL Server, но любой ответ будет делать.