Статус заказа и статус журнала - PullRequest
0 голосов
/ 01 июня 2011

Я занимаюсь разработкой бэкэнда электронной коммерции (интернет-магазины) на PHP / MYSQL.

Я хочу знать, как лучше всего справляться со статусом заказов и отслеживанием статуса / даты.

Когда пользователь разместил заказ, статус заказа будет 1 (tbl_order.status = 1) в таблице tbl_order. Это лучший способ?

Вот номера статуса заказа:

  • 1 - Новый заказ
  • 2 - в ожидании
  • 3 - Отменено
  • 4 - Завершено

Когда сотрудники входят в бэкэнд, они могут шаг за шагом менять статус заказа.

Я хочу отследить, кто это сделал, и время, как это можно сделать?

Ответы [ 2 ]

1 голос
/ 01 июня 2011

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

Но для отслеживания изменений я бы предложил отдельную таблицу журналов, в которую вы будете записывать timestamp, order_id, user_id, old_status, new_status. Таким образом, вы можете отследить всю историю в любое время (в отличие от LastUpdate концепции).

Эта концепция может быть обобщена за пределы статуса заказа - любые изменения значения поля могут отслеживаться таким образом (хотя при большом количестве таблиц журналов отслеживания, как правило, быстро увеличиваются в размере)

0 голосов
/ 01 июня 2011

Нет ничего плохого в этом методе. Будет ли у вас таблица OrderStatus, в которой числа рядом с их значениями? Я бы порекомендовал это, так как это позволит добавлять различные статусы в будущем с минимумом суеты.

Что касается отслеживания изменений и времени - обычно у вас есть столбцы «LastUpdated» и «UserId», которые обновляются каждый раз при изменении заказа (возможно, с использованием хранимой процедуры для обеспечения этого). Я бы положил их в таблицу tbl_order, чтобы любые изменения в заказе регистрировались.

В целом, я думаю, вы идете по правильному пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...