J'essaie de mieux comprendre les tables de jonction et les jointures de table. Si j'ai deux tables, boucles em> strong> et stops em> strong>, qui ont une relation à plusieurs à plusieurs, comment peut-on J'affiche les arrêts Actuellement, j'ai deux tables plates qui ressemblent à ceci. p> Table des boucles H2>
+----------+-------+--------------+----+
| stops | loops | displayOrder | id |
+----------+-------+--------------+----+
| WestStop | Red | 1 | 12 |
| WestStop | Green | 3 | 11 |
| WestStop | Blue | 2 | 6 |
+----------+-------+--------------+----+
4 Réponses :
créer 3 tables. p>
boucle, arrêt et une table pour les rejoindre. P>
Vous pouvez également imaginer une table pour relier les arrêts à d'autres arrêts qui vous indiquent la distance entre eux et le temps nécessaire. Ensuite, vous utiliserez théoriquement ce type d'informations pour déterminer les itinéraires optimaux. P>
cela ne va pas aider avec la commande sauf s'il y a une colonne de commande
L'ordre des données dans le tableau n'est pas garanti à moins que cela soit spécifié.
Vous devez soit P>
donc par exemple p>
Vous avez beaucoup à de nombreuses relations entre lignes de bus (boucles) et arrêts de bus: L'utilisation d'une table de jonction est le moyen standard d'aller. P>
Dans la table de jonction, dit Loops_stops, vous souhaitez stocker une FK sur les lignes de bus, une autre FK sur les arrêts de bus et la séquence de l'arrêt de la ligne. Vous pouvez avoir une clé unique sur les deux colonnes de contrainte (incluez la séquence qu'il est possible que le même arrêt soit servi deux fois par la même ligne). NB: UN MYSQL, vous souhaitez généralement utiliser des clés primaires entier autonique. P>
Dans la table STOPS, vous stockez des informations communes à cesser, comme le nom, l'emplacement, les équipements et ainsi de suite. p>
L'utilisation d'une table de jonction est la bonne façon de représenter vos données. Cela vous empêchera également de faire dupliquer des informations dans les tables de lignes. Nous pouvons voir que cela commence à se produire avec vos échantillons de données: Et si vous devez ajouter des informations communes à toutes les lignes? Dans votre exemple de données (par exemple, emplacement)? Vous auriez besoin de le dupliquer sur chaque ligne, ce qui n'est pas efficace et un cauchemar de maintenance lorsque vous devez mettre à jour cette valeur. P>
Vous pouvez le faire sans table de jonction ci-dessous:
Mettez à jour votre question et ajoutez le résultat attendu. aussi
3 tables .. boucle, arrêt et loop_stop. Vous pouvez avoir une colonne dans loop_stop pour raconter l'ordre des arrêts