доставляющих заказы:
- при подборе заказа водитель в мобильном приложении отмечает факт подбора и доставки
- одновременно он может доставлять несколько заказов 3-5, в среднем доставка заказа занимает 2-5 дней, координаты фиксируются 1-3 раза в минуту
- в пути заказ может переназначаться на другого водителя, один или несколько раз
- в итоге в админке для каждого заказа нужно вывести на карте маршрут покрасив трек каждого водителя в свой цвет
- в будущем может понадобиться поиск заказов по произвольной координате с радиусом за определенный промежуток времени
Если в одной таблице хранить координаты вместе с order_id и driver_id придется дублировать записи для каждого order_id, оптимальное ли такое решение?
Или лучше хранить order_ids массивом, или еще как-то?
Зачем вам order_id — если ведётся история заказов?
имеете ввиду историю переназначений водителя для каждого заказа?
Есть ид заказа. Есть точка заказа. Есть точка водителя. Заказ хранить отдельно вместе с координатой. Водителя хранить отдельно. Координаты водителя хранить отдельно. На заказа назначать водителя, кто ближе по координате. Апдейт на заказ. Хранить историю или нет, решать вам.
Водителей диспетчер переназначает из своих соображений, не всегда того, кто ближе. Пока склоняюсь к тому чтобы завести таблицу истории назначений/переназначений с driver_id, order_id, started_at, finished_at и по временным меткам started_at, finished_at и driver_id делать inner join с таблицей хранящей координаты.
1. Ну в плане процесса так себе, у диспетчера будет любимчик. 2. Orders_history Кто назначил. Кого назначил, когда назначил на какой заказ назначил.
Обсуждают сегодня