Как разработать базу данных общественного транспорта? - PullRequest
2 голосов
/ 28 августа 2010

Существуют ли примеры разработки базы данных для расписаний общественного транспорта?

Или какое-либо решение механизма обработки расписаний OpenSource?

Или, если нет, как это сделать самостоятельно?

Как мне лучше спроектировать базу данных, чтобы поиск мог быть достаточно быстрым?

Я бы сделал это так:

Для тестирования я бы взял X-образную форму.Автобусная сеть, с 5 остановками (ребра и вершины) ..

Таблица 1: Список Деревень / Местоположений / Остановок и их географических координат, плюс UID.

Таблица 2: СписокНазвания мест, включая переводы, короткие знаки, с таблицей 1 в качестве внешнего ключа

Таблица 3: Список транспортных средств, таких как автобус, поезд, самолет, корабль и их переводы.

Таблица 4: Список стран

Таблица 5: Список включенных дат и дат для государственных праздников и названия праздников, включая перевод, с указанием страны в качестве внешнего ключа

Таблица 6: Списокиз-за даты для n различных сезонов, включая траnslation, например, зима, лето, со страной в качестве внешнего ключа

А теперь начинается сложная часть (расписание, маршруты, остановки):

Таблица 7: Line_UID, vehicle_uid, line_nr, имя_строки, line_start_location_uid, line_stop_location_uid

Таблица 8: hop_uid, line_uid, stop_uid, stop_sequence_nr, time_uid

Таблица 9: time_nuid, hop_uid, время

Я думаю, особенно связь между временем остановки и остановкитрудно.Также я все еще думаю о том, как лучше связать разные сезоны с линией / маршрутами.Это кажется разумным?Или вы видите проблему?

Редактировать: Нет, не работает, мне нужно учитывать время прибытия и отъезда.

Ответы [ 2 ]

10 голосов
/ 28 августа 2010

Google создал формат для этих данных:

http://code.google.com/transit/spec/transit_feed_specification.html

0 голосов
/ 28 августа 2010

Вот одно из мест, где можно найти общественную модель общественного транспорта.

База данных Ответы транспортной модели .

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