У меня есть сайт, где пользователи могут разместить заказ.Заказ проходит различные стадии, прежде чем он будет готов к отправке.Я хочу иметь возможность регистрировать в любое время, когда что-либо происходит с заказом.
Вот пример того, что я хотел бы посмотреть:
(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).
В идеале я хотел бы создать пронумерованные коды для каждого шага в процессе заказа, например,утверждение заказа, редактирование заказа или доставка заказа, а затем просто назначьте номер для этой строки вместо фактического сообщения истории, которое состоит из нескольких символов.Я чувствую, что таким образом я не буду перегружать свою БД.Проблема с этим подходом состоит в том, что я хотел бы вести журнал фактических данных, которые были изменены (как вы можете видеть в редактировании пользователя и администратора в примере), и я не уверен, как я могу сделать это безсохранение полной истории сообщений для каждой строки.
Каков наилучший способ хранения истории заказов в базе данных для моей ситуации?