Быстрый и грязный способ отключения определенного внешнего ключа - PullRequest
0 голосов
/ 05 марта 2009

В идеале у меня должно быть поле «isActive» в таблице, чтобы указать, активна ли запись, но это потребовало бы изменений в нескольких хранимых процедурах, чтобы заставить поле делать то, для чего оно предназначено.

Я придумала грязную уловку и немного соблазнилась выполнить ее. Поскольку результирующий набор генерируется несколькими объединениями, я думал о небольшом изменении внешнего ключа в одной из таблиц путем добавления «*», «x» или любого другого символа, который обычно не заканчивается в ключе.

Есть ли что-то, чего я должен бояться?

Ответы [ 3 ]

3 голосов
/ 05 марта 2009

Один из способов получить «неактивное» состояние без изменения всех других хранимых процедур - переместить запись в «неактивную» таблицу, пока запись не активна.

1 голос
/ 05 марта 2009

Вы хотите войти в базу данных и вручную добавить символ в определенную строку, чтобы отключить одного клиента или что-то еще?

Как насчет объединений - можете ли вы временно добавить ... И CustomerId NOT IN (1234, ...) в предложение WHERE?

Не думаю, что вам следует начинать возиться с такими данными, даже если это позволяет ссылочная целостность.

1 голос
/ 05 марта 2009

Есть ли что-то, чего я должен бояться?

Имеет ли проблема наличие несовместимых данных с расхождением с нечитаемыми данными, вызванными добавлением специального символа?

Если эта проблема возникнет позже, я думаю, пришло время реорганизовать ваши хранимые процедуры или таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...