J'écris une application qui achemine des trains modèles, qui sont stockés dans la table de base de données [TrainStop] comme suit:requête pour travailler sur des destinations possibles sur un ensemble de routes avec SQL Server 2008
TrainServiceId StationCode StopIndex IsEnabled
Ainsi, un train donné suit un itinéraire et se compose de plusieurs lignes avec le StopIndex indiquant la commande. Le problème que j'essaie de résoudre est de dire à quelles stations un utilisateur peut accéder à partir d'une station de départ donnée en fonction des services de train disponibles. Ce serait relativement simple MAIS il est également possible de désactiver les arrêts, ce qui signifie qu'un utilisateur ne peut se rendre à aucune destination après cet arrêt pour ce service de train. Il est également possible que plusieurs trains sur des voies différentes peuvent partager des stations, par exemple:
service ferroviaire 1: A, B, C, D, E
service de train 2: P, Q, B, C, D, R
Ainsi, si un utilisateur est en B, il peut aller en C, D, E et R, mais si la station D est désactivée sur l'un ou l'autre service, il peut uniquement accéder à C. Si la station E est désactivée sur le service 1, l'utilisateur peut accéder à C, D et R.
La résolution de ce problème est assez simple en C# mais je me demande si elle peut être résolue avec élégance et efficacité dans SQL? J'ai du mal à trouver un moyen, pour chaque route, d'exclure les stations après une rangée qui n'est pas activée.
Pouvez-vous donner des exemples de données d'entrée et de sortie? –