2011-01-02 3 views
0

У меня есть столбец: «Статус» в каждой таблице в моей БД. Целью этого является показать, используется ли данная строка или если она была деактивирована. Таким образом, значения могут быть (0 = деактивированы и 1 = активны). Два способа я вижу это: у меня могут быть перечисления или я думаю, что лучше сохранить этот столбец как FK, который ссылается на основную таблицу словаря системных данных, которая имеет все коды, используемые в системе. (веб-сайт)FKs во всех таблицах для столбца состояния

Преимущество каждого стола, каждая строка может быть централизована через этот FK. Поэтому, если я когда-либо захочу проверить все строки, которые деактивированы в моей системе, я могу из этой таблицы, поскольку все дочерние таблицы будут иметь статус = идентификатор 233, где 233 = деактивирован в таблице словаря данных.

Любая польза или я должен придерживаться старого способа перечислений ?. Также я думаю, если мне нужен еще один статус для удаления или это то же самое, что и деактивировано?

+0

Только примечание на языке, противоположное «активному», является «неактивным». Не существует такого слова «deactive», хотя глагол «deactivate» отлично подходит. Обычно я не исправляю грамматику людей, но, поскольку вы собираетесь использовать эти термины много, я думал, что вы можете найти это полезным. –

+0

хорошая точка, спасибо – Jonarch

ответ

0

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

Если вы будете иметь больше состояний, то да может быть хорошая идея, чтобы иметь отдельную таблицу состояния, но это на самом деле не необходимо, если вы не хотите писать запросы, удобные и простые читать (where status = 'inactive' намного легче понять, чем where status = 0), или вы намерены изменить то, что означает значение (в этом случае вы просто изменяете описание в таблице status).

Что касается введения нового значения deleted - лично я бы рассматривал его как отдельный столбец, поскольку он имеет другое значение для actice или неактивно, и вы не можете перезаписывать состояние своей строки, когда оно становится (например, вы сохраняете информацию о том, что столбец был активным или неактивным, когда он был удален).

+0

Хм, для этого вопроса он работает. Я задам другой вопрос о различных состояниях, которые мне нужны, потому что у учетной записи может быть так много статусов. – Jonarch

Смежные вопросы