@startuml

abstract class BaseEntity

class RailItemSequence extends BaseEntity
abstract class fItemSequenceHolder extends BaseEntity
class Station extends BaseEntity
class StationInfo extends BaseEntity
class Track extends RailItemSequenceHolder
class Train extends RailItemSequenceHolder
class TrainRun extends BaseEntity
class TrainRunSection extends BaseEntity
class Waggon extends RailItem
class Locomotive extends RailItem
abstract class RailItem extends BaseEntity
class RailItemSequenceMembership extends BaseEntity

'---

Station "1" -- "n" Track
TrainRun "1" -- "n" TrainRunSection

RailItemSequence "n" -- "1" Track
RailItemSequence "1" -- "1" Train

RailItemSequence "1" -- "n" RailItemSequenceMembership
RailItem "1" -- "1" RailItemSequenceMembership

@enduml