У нас есть данные автобусной станции, и мы хотим создать приложение, которое предоставит линию / несколько линий для данной начальной станции и конечной станции.
Например, пользователь пытается получить предложение линии автобуса от станции 1 до станции 2.
Если есть автобусная линия, которая может покрыть и то, station1
и другое station2
, эта линия должна быть возвращена. Результат может выглядеть так:
Step1: station1 -- station2
Если между станцией 1 и станцией 2 нет прямой линии шины, то приложение должно попытаться найти план обмена, например, результат может выглядеть следующим образом:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Теперь у нас есть данные, но мы не знаем, как спроектировать модель данных в базе данных, как создать схему, чтобы сделать запрос эффективным?
=============================================
Обновить:
Например, у меня есть четыре линии шины (фактически две), каждая из которых имеет свой цвет:
l1: A-B-C-D
l2: D-B-A (in fact, the l2 is the reverse of l1 except the l2 will skip station `C`.
l3: E-B-D-F
l4: F-D-B-E(reverse of l3)
Теперь, если мы хотим сохранить эту информацию в базе данных, чтобы запросить план шинной линии для данной одной станции к другой, то сколько таблиц нам нужно, и что следует поместить в каждую таблицу?