I have these three tables in Exposed. How could I link them Train.number to Schedule .trNumber, Train.srCode to Stations.name, Train.destCode to Stations.name, Schedule .stnCode to Stations.name.
object Schedule: Table(){
val trNumber = varchar("tr_number", length = 10)
val stnCode = varchar("stn_code", length = 50)
val type = integer("type")
val arrTime = integer("arr_time")
val depTime = integer("dep_time")
val dayNum = integer("day_num")
val km = varchar("km", length = 10)
override val primaryKey: PrimaryKey = PrimaryKey(trNumber, stnCode)
}
object Train:Table(){
val number= varchar("number", length = 10)
val name= varchar("name", length = 50)
val srCode= varchar("srCode", length = 10)
val srcName= varchar("srcName", length = 50)
val destCode= varchar("destCode", length = 10)
val destName= varchar("destName", length = 50)
val runDays= integer("runDays")
val classes= integer("classes")
val updatedOn= integer("updatedOn")
override val primaryKey = PrimaryKey(number)
}
object Stations:Table(){
val name= varchar("name", length = 50)
val code= varchar("Code", length = 10)
val lat =float("lat")
val lng =float("lng")
val jn= integer("jn")
val updatedOn= integer("updatedOn")
override val primaryKey = PrimaryKey(code)
}
You can use references in exposed.
object Schedule: Table(){
....
val trNumber = varchar("tr_number", length = 10).references(Train.number)
val stnCode = varchar("stn_code", length = 50).references(Stations.name)
....
}
object Train:Table(){
....
val srCode= varchar("srCode", length = 10).references(Stations.name)
val destCode= varchar("destCode", length = 10).references(Stations.name)
....
}