В нашей базе данных есть таблица, которая очень похожа на стандартную таблицу поиска (ID, Description). Тем не менее, этот конкретный не является статичным, клиент хочет возможность добавлять записи на лету. Некоторые записи, которые будут предварительно заполнены, являются «специальными» в том смысле, что будет код, который проверяет их (различные бизнес-правила).
Обычно я создавал бы таблицу без автоматически увеличивающихся идентификаторов, чтобы быть уверенным в том, что перечисление, которое отражает записи в таблице, всегда совпадает. Тогда нужно просто проверить, совпадает ли идентификатор этого объекта со значением перечисления, которое я проверяю.
Я мог бы попробовать тот же подход, с идентификаторами, которые не увеличиваются автоматически, и перечислением, которое охватывает только записи, которые не добавляются на лету. Вскоре мы столкнемся с проблемой создания следующего идентификатора, когда пользователь добавит новую запись. В основном, повторная реализация в коде функции автоинкремента базы данных.
Если я переключусь на использование столбцов идентификаторов, возникнет проблема с синхронизацией значений enum.
Конечно, я всегда могу сопоставить текстовый атрибут «Описание», но это плохо по очевидным причинам.
Есть ли хороший способ справиться с чем-то вроде этого? Этот вопрос на самом деле не отвечает на него.