Opened 2 years ago

Closed 2 years ago

Last modified 22 months ago

#1020 closed задача (fixed)

БД: Вычислять статус заказа по необходимости а не хранить его.

Reported by: san Owned by: Denis_N
Priority: major Component: БД изделий АДС
Keywords: Cc:

Description

Из ticket:874#comment:14

Часть состояний ("создан", "скомплектован", "проверен" и "прошел ОТК") формируется автоматически (то есть зависит только от состояния составляющих заказ изделий), а часть (точнее, одно - "отгружен") - присваиваются пользователями. Зачем хранить в таблице значение, которое является агрегацией состояний составляющих заказ изделий? ИМХО лучше хранить в таблице orders только поле-флаг "отгружен", а остальные состояния вычислять каждый раз по мере необходимости - это позволит избежать потенциальных неконсистентных состояний, когда записанное в таблице состояние не соответствует состояниям составляющих заказ изделий (например в результате бага). Например если состояния изделий кодировать как 0 (не проверено), 1 (проверено, не прошло ОТК) и 2 (прошло ОТК), то состояние всего заказа в целом легко получается простым MIN(itemState)...

Change History (2)

comment:1 by Denis_N, 2 years ago

Resolution: fixed
Status: newclosed

In 76/base:

Улучшение: БД: Вычислять статус заказа по необходимости а не хранить его.
Теперь алгоритм вычисляет статус заказа
Столбец status в orders пока требует, чтобы там либо отсутствовало значение, либо чтобы там было значение shipped;

closed #1020

comment:2 by san, 22 months ago

milestone: 1 очередь

Milestone deleted

Note: See TracTickets for help on using tickets.