Hola! es un proyecto muy complejo (o tanto como queramos agregar funcionalidad).
Con base al análisis que he desarrollado, el planteamiento que pretendo seguir es el siguiente:
Los puntos a considerar para el planteamiento del reto propuesto para el curso, considera las siguientes entidades principales:
Entidad: Pasajero
Tipo de entidad: Catalogo
Descripcion: Catalogo de pasajeros que hacen uso de un tren
Atributos: Id, Nombre, Id Estacion de origen, Id Estacion de destino, Fecha de viaje
Entidad: Lineas
Tipo de entidad: Catalogo
Descripcion: Catalogo de lineas o rutas del sistema de trenes
Atributos: Id, Nombre, Tiempo estimado de viaje, Estatus
Entidad: Estacion
Tipo de entidad: Catalogo
Descripcion: Catalogo de estaciones de trenes incorporadas al sistema
Atributos: Id, Id de linea, Nombre, Estatus
Entidad: Tren
Tipo de entidad: Catalogo
Descripcion: Catalogo de trenes incorporados al sistema
Atributos: Id, Cupo, Estatus
Entidad: Trayectos
Tipo de entidad: Catalogo
Descripcion: Catalogo de trayectos de trenes incorporados al sistema
Atributos: Id, Id de linea, Id de tren, Fecha de trayecto, Hora de inicio de trayecto, Hora de fin de trayecto, Estatus
Entidad: LineasEstaciones
Tipo de entidad: Cruce
Descripcion: Cruce entre lineas y estaciones para determinar rutas
Atributos: Id, Id de linea, Id de estacion, Orden, Estatus
Entidad: TrackingViaje
Tipo de entidad: Movimiento
Descripcion: Movimiento de pasajeros entre estaciones
Atributos: Id, Id de pasajero, Id de estacion, Fecha de registro, Hora de llegada a estacion, Estatus
Entidad: TrenesPasajeros
Tipo de entidad: Cruce
Descripcion: Cruce entre trenes y pasajeros para determinar ocupacion de trenes
Atributos: Id, Id de tren, Id de pasajero, Fecha de registro, Estatus
Entidad: TrenesTrayectos
Tipo de entidad: Cruce
Descripcion: Cruce entre trenes y trayectos para determinar trayectos de trenes
Atributos: Id, Id de tren, Id de trayecto, Fecha de registro, Estatus
Algunas consideraciones que aún no aterrizo es como manejar los estatus, si lo haré por uso de booleanos o generaré un catalogo especifico por entidad para determinar mas de un estado de transición.
Como lo visualizo, mi estructura podrá generar tracking de rutas, que se puede usar para definir rutas optimas teóricas y reales (tomando en cuenta los tiempos de llegada a estaciones), ocupación de los trenes (analizando el cupo del tren contra los pasajeros que lo usan para rutas especificas en ciertos momentos del tiempo) y muchas otras cosas que se pueden ir adicionando fácilmente.
Saludos!