Nous avons des données de station de bus, et nous voulons construire une application qui fournira la ligne / ligne multiple pour une station de départ et une station de fin données.
Par exemple, l'utilisateur essaie d'obtenir une suggestion de ligne de bus de station1 à station2.
S'il existe une ligne de bus qui peut couvrir les deux station1
et station2
, cette ligne doit être retournée. Le résultat peut ressembler à ceci:
Step1: station1 -- station2
S'il n'y a pas de ligne de bus directe entre la station1 et la station2, l'application doit essayer de trouver le plan d'échange, par exemple, le résultat peut ressembler à ceci:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Nous avons maintenant les données, mais nous ne savons pas comment concevoir le modèle de données dans la base de données, comment créer le schéma pour rendre la requête efficace?
=============================================
Mise à jour:
Par exemple, j'ai quatre lignes de bus (en fait deux) chacune avec une couleur différente:
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)
Maintenant, si nous voulons enregistrer ces informations dans la base de données pour interroger le plan de ligne de bus pour une station donnée à une autre, alors de combien de tables avons-nous besoin et que faut-il mettre dans chaque table?