Expeded 中的链接表

问题描述 投票:0回答:1

我在 Exposed 中有这三个表。我如何将它们链接到 Train.number 到 Schedule .trNumber、Train.srCode 到 Stations.name、Train.destCode 到 Stations.name、Schedule .stnCode 到 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)

}

使用 Exposed 进行数据库持久化

sql kotlin kotlin-exposed
1个回答
0
投票

您可以在暴露中使用参考。

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)
    ....
}
© www.soinside.com 2019 - 2024. All rights reserved.