Как мне сохранить историю заказов в базе данных, используя php? - PullRequest
1 голос
/ 20 февраля 2012

У меня есть сайт, где пользователи могут разместить заказ.Заказ проходит различные стадии, прежде чем он будет готов к отправке.Я хочу иметь возможность регистрировать в любое время, когда что-либо происходит с заказом.

Вот пример того, что я хотел бы посмотреть:

(2/13/ 12 16:41): Заказ инициирован Заказчиком (13.02.12 16:41): Заказ отправлен менеджеру на утверждение (13.02.12 16:43): Заказ утвержден менеджером (14.02.12 18:03): Заказ отредактировал пользователь: Город: от «Лос-Анджелес» до «Сан-Диего» * ​​1015 * (14.02.12 18:09): Порядок отредактировал администратор: Электронная почта: 'gearge@gmail.com' to'george@gmail.com' (15.02.12 20:41): Заказ готов к доставке

Каков наилучший способ хранения истории заказов такого типа?Я создал таблицу в БД под названием history, где я хотел бы хранить историю, поскольку она относится к каждому заказу.Мои столбцы: history_id (основной), order_id (внешний), дата добавления (временная метка) и history_message (varchar).

В идеале я хотел бы создать пронумерованные коды для каждого шага в процессе заказа, например,утверждение заказа, редактирование заказа или доставка заказа, а затем просто назначьте номер для этой строки вместо фактического сообщения истории, которое состоит из нескольких символов.Я чувствую, что таким образом я не буду перегружать свою БД.Проблема с этим подходом состоит в том, что я хотел бы вести журнал фактических данных, которые были изменены (как вы можете видеть в редактировании пользователя и администратора в примере), и я не уверен, как я могу сделать это безсохранение полной истории сообщений для каждой строки.

Каков наилучший способ хранения истории заказов в базе данных для моей ситуации?

1 Ответ

0 голосов
/ 20 февраля 2012

Вы можете использовать триггер для обновления дочерней таблицы, отслеживая состояние каждого заказа.

В основном, используя триггер вставки или вставку вручную после обновления статуса заказа, запросом вставки вы можете скопировать необходимые данные из таблицы заказов вновую таблицу мы можем назвать трекодерами.таблица отслеживания будет отслеживать все изменения, а запись с текущим статусом будет в основной таблице.

...