Я работаю с самыми разными процессами, которые имеют предложения WHERE, которые выглядят так:
WHERE ... AND ( ( myTbl.myValue = 1234)
or (myTbl.myValue = 1235) )-- Value = No
Я обсуждал это с некоторыми коллегами, и такой код кажется неизбежным. Я думаю, что это хорошая идея - поместить этот код в одно (и только одно) место. Это может быть представление, это может быть таблица и т. Д. Я думаю, что представление, которое выбирается из базовой таблицы и имеет битовое поле, которое говорит, что значение 1234 или 1235 равно 0. Или 'N' и т. Д. Таким образом, я могу добавлять значения «Нет» по желанию без необходимости изменения кода. Я бы не использовал UDF для этого, слишком много вызовов функций, если вы используете его в соединении.
Какие еще есть варианты для работы со специальными значениями в вашей базе данных? Являются ли просмотры хорошим решением для этого? Есть ли способы вообще избежать такого рода вещей? Я думаю, что если это значение нужно изменить по какой-либо причине, я не хочу иметь дело с изменением сотен процедур. С другой стороны, дополнительное объединение, так что это удар по производительности.
Обновление: если у кого-то есть стратегии, чтобы просто избавиться от этих чертовых вещей, это было бы здорово. Как я уже говорил, обсудили это с коллегами, и эти вещи кажутся неизбежными в организациях, которые имеют много бизнес-логики на уровне БД.
PS: я видел несколько вопросов о магических числах, но ничего специфического для базы данных.