Предположим, я хочу смоделировать службу общественного автобусного транспорта с графической базой данных, такой как Neo4j.
Такая услуга состоит из набора автобусных остановок, набора линий и набора расписаний, которые связаны слинии с автобусными остановками.
Запросы к базе данных должны отвечать на такие вопросы, как, каков наилучший маршрут (например, по времени или по наименьшему возможному или с меньшим количеством изменений), чтобы пройти от точкигород к другому.
Следуя наиболее распространенным правилам, автобусные остановки и линии становятся узлами, каждый из которых имеет надлежащие свойства (идентификаторы, расположение и адрес для каждой остановки и т. д.).
Каждая линияимеет ребра с метками start
и stop
начало и конец строки службы.Последующие автобусные остановки связаны с другими ребрами с некоторыми свойствами (такими как линия (и), расстояние между двумя остановками и др.).
Как моделировать расписания в таких базах данных?Хорошо ли моделировать их как свойство значения ключа автобусных остановок (или соединяющих их ребер), значение которых представляет собой массив, содержащий времена?