У меня есть таблица, где я нажимаю связанные данные. Он имеет 6 столбцов с нулевым значением. Исходя из некоторой логики, комбинация из 2 всегда не равна нулю (1-й + один из последних 4 & второй + один из последних 4). Таким образом я избегал иметь 8 разных таблиц для хранения данных.Уникальный индекс SQL Server в (все) значения NON-NULL строк
Есть ли T-SQL (начало довольно новый специфики SQL Server) ярлык, чтобы создать уникальный ключ на этих 6 столбцов, говорит гарантировать, что любая непустая комбинация из столбцов, указанных в индексе (1 - 6-й) уникален, но не стал действительно конкретным?
Я могу создать уникальные индексы для каждой комбинации, но мне было интересно, есть ли какой-нибудь ярлык, чтобы оставаться ленивым и использовать (написать) 1 индекс против 8 из них. Это, очевидно, не большое усилие, но что-нибудь короче, лучше ... в коде, в большинстве случаев!
Имея нулевые столбцы, чтобы избежать создания правильных таблиц, это плохой дизайн, и одним из последствий является то, что вам нужно добавить проверки и ограничения, чтобы избежать плохих значений. Вместо этого создайте правильный дизайн. Если вы хотите сразу прочитать данные из всех таблиц, используйте представление с объединением –
@PanagiotisKanavos. Я знаю, что это плохой дизайн, но 8 таблиц облегчают жизнь SqlServer, а 1 делает мой. И учитывая тот факт, что таблица на 99% читается только и не так часто посещается ... для меня более приоритетной является жизнь. ;) – CodeAngry
Тогда почему у вас возникли проблемы? Фактически, они делают вещи хуже: как для сервера, так и для программиста. SQL Server имеет некоторые дополнительные функции, которые могут преодолеть недостатки, но в конце концов вам нужно исправить дизайн. –