У меня есть разные таблицы в моих SQL server
database
, и большинство таблиц ссылаются на такие поля, как статус (определенного объекта), категория (определенного объекта), тип (определенного объекта) и т. Д., Где эти статусы, категории, типы и т. д. взяты из отдельных собственных основных таблиц (например, таблица для StatusMaster и т. д.).
Я хочу знать, что является лучшей практикой:
a) поля статуса / категории / типа в основных таблицах должны иметь поля типа varchar
/ text
, представляющие значения из основных таблиц
б) или они должны быть foreign keys
(int
)
Я думаю, что в идеале это должно быть сделано с использованием (b), т. Е. Внешних ключей, потому что, если при каждом изменении записи в основной таблице (например, статус «В процессе» изменяется на «Работа начата»), все соответствующие записи будут автоматически обновляться, где бы они ни находились ссылки. Но моя проблема в том, что в моем приложении слишком много таблиц (более 70), и так много разных статусов / категорий / типов и т. Д., Поэтому поддержка такого количества таблиц становится головной болью.
Также, пожалуйста, предложите
У меня должна быть одна таблица, которая содержит основную информацию для статуй, категорий, типов (и любых других, если требуется) с дополнительным полем, в котором указывается, что это за основная запись, или лучше иметь отдельные таблицы, как сейчас?