Некропостит.
Ваш вопрос довольно хорошо гуглится, так что добавлю свой вариант ответа.
Ключевой момент в том, что вы делаете трекинг. Для предметной области важны следующие сущности:
- Сессия - относительно непрерывный (без больших пропусков) участок траектории движения: границы сессии во времени, границы в пространстве, длительность сессии, пробег сессии, время простоя, время в движении, средняя скорость, максимальная скорость, медианная скорость.
- Точка трека - сообщение от GPS-трекера:
- время,
- координаты,
- скорость,
- уровень сигналов GPS и GSM,
- уровень топлива,
- датчики дверей,
- датчики работы двигателя,
- текущая точность GPS,
- и т.д.
- Маршрут - информация о траектории без детализации профиля скорости. Длина, мат-ожидания времени пути для разных ТС...
- Точка маршрута.
Очевидно, что ввиду всего этого у вас никак не получится хранить точки треков в поли-линиях постгиса.
Зато можно кэшировать их агрегированную геометрию в этом формате для скорости и простоты работы. Но это самое кэширование имеет смысл только если вам эта оптимизация реально нужна (медленно отдаются треки, медленно и сложно джойнятся сессии...). Зачем делать то. что можно было бы не делать?
А на счет размера БД я бы на вашем месте и месте вашего коллеги вовсе бы не беспокоился. Сейчас хранилища дёшевы и масштабируемы, никогда не поздно чистить старые ненужные данные, Данные у вас отлично индексируются и фильтруются по времени, можно дампы старых данных сливать в холодное хранилище, вдруг приспичит когда-то сделать инфографику или болшой анализ.
Я бы пожалел отказываться от детальной инфы по точкам трека в пользу какой-то сомнительной преждевременной оптимизации.