Example table definitions & query:
case class House(id: Long, address: String)
case class Metro(id: Long, houseId: Long, name: String)
case class Room(id: Long, houseId: Long, area: Int)
object Houses extends Table[House]("Houses") {
def id = column[Long]("id", O.AutoInc, O.PrimaryKey)
def address = column[String]("address")