Мне нужна таблица, в которой хранятся предметы и треки, когда предмет ...
- поставлен в очередь
- помечен для доставки
- отправлен
- помечено для возврата
- возвращено
В таблице также необходимо указать, сколько предметов клиент получил ...
- за месяц
- имеет дома в это время
Я пытался использовать наследование.Я назначил каждому шагу typeId
(от 1 до 5, каждый идентификатор представляет текущий шаг в рабочем процессе).Этот подход не идеален, потому что обновление шага рабочего процесса стирает историю.
Например, если элемент перемещается с shipped
(typeId 3) на returned
(typeId 5), мы теряем точное количество отправленных элементов..
Как мне подойти к этому?Кроме того, я предпочитаю хранить данные в одной таблице, если у меня нет веских причин не делать этого.
Обновление
Элементы отправляются клиентам по почте постепенно.Существуют ограничения на количество товаров, которые клиент может получить в течение месяца, и ограничения на количество товаров, которые клиент может иметь дома в любой момент времени.Для этого примера предположим, что 4 для более ранних и 2 для последних.В очереди клиентов может быть любое количество элементов.По этой причине элементы в очереди должны быть ранжированы таким образом, чтобы порядок отправляемых элементов мог быть в соответствии с предпочтениями клиентов.
Товары, которые уже были отправлены, должны выпадать из рейтинга (клиент больше не можетизменить ранг после отправки предмета).