Извинения за плохо сформулированное название, но моя неспособность выразить то, что я имею в виду, вероятно, поэтому я не могу найти ничего, что связано с этим с Google.Требовать только один из нескольких столбцов не должен быть нулевым
Проще говоря, представьте ситуацию, когда у вас есть таблица с именем Image в базе данных, в которой хранятся изображения и связанные метаданные. Фотография может быть клиента, их автомобиля или конкретного ремонта, выполняемого на автомобиле. Существуют таблицы под названием «Клиент», «Автомобиль» и «Ремонт», каждый со своей уникальной колонкой идентификаторов.
В таблице изображений есть столбец с именем ClientID, столбец с именем CarID и столбец с именем RepairID, который связывает каждую запись изображения с клиентом, автомобилем и/или ремонтом. Проблема в том, что изображение может относиться к клиенту и машине, но не к ремонту, а также к автомобилю и ремонту, но не к клиенту, или только к одному из этих трех. Другими словами, может быть значение в одном, двух или трех столбцах, но там ДОЛЖЕН быть столбец в AT LEAST ONE. Пока один не является NULL, могут быть два других.
Есть ли способ достичь этого с помощью ограничений (или любого другого метода) в MSSQL?
Надеюсь, приведенная ниже диаграмма иллюстрирует то, о чем я говорю.
Это выглядит достаточно просто! Знаете ли вы о каких-либо конкретных проблемах производительности, которые могут возникнуть? –
На этом не было бы никаких накладных расходов, это тривиальная проверка. – RedFilter