Если статус или другой атрибут может быть получен из других таблиц, более простой вариант - сохранить его как есть и «искать его каждый раз».Ваши таблицы остаются нормализованными.и вам не нужно поддерживать какие-либо производные значения с помощью сложных решений, таких как триггеры и т. д.
Когда вам нужно подумать о другом варианте?Когда вышеуказанный подход становится медленным - даже если вы оптимизировали свои запросы.Если вам нужно рассчитать средние значения, например, для цен акций за 10 лет и для тысяч акций и товаров, запросы не будут достаточно быстрыми, чтобы рассчитываться на лету.
Итак, вы можете сначала добавить таблицы или поля с агрегированными или другими производными данными, которые вам нужны.Вы можете использовать индексированные представления (большинство СУБД имеют эту функцию) или дополнительные таблицы для агрегированных данных - это может хорошо работать для данных, которые больше не могут изменяться, например, статистические данные для цен на акции за предыдущие дни / месяцы / годы.Когда день / месяц / год заканчивается, вычисления выполняются (один раз) и таблицы обновляются.Затем вы можете быстро найти эти таблицы для более старых данных и «активные» таблицы для более новых данных.
Другие варианты для более сложных ситуаций включают триггеры, которые поддерживают производные значения.Я бы использовал это как последний ресурс, но я уверен, что по этому вопросу существуют противоположные мнения.