モデルZone
、モデルEntity
、モデルがありTransit
ます。Transit
最低限、次のように定義されます。
class Entity(db.Model):
__tablename__ = 'entities'
id = db.Column(db.Integer, primary_key=True)
contained_by = db.Column(db.Integer, db.ForeignKey('entities.id'))
contains = db.relationship('Entity', backref='container')
discriminator = db.Column('type', db.String(50))
__mapper_args__ = {'polymorphic_on': discriminator}
class Zone(Entity):
__mapper_args__ = {'polymorphic_identity': 'zones'}
routes = db.relationship('Transit')
(stuff goes here)
class Transit(db.Model):
__tablename__ = "transits"
start = db.Column(db.Integer, db.ForeignKey('zones.id'))
end = db.Column(db.Integer, db.ForeignKey('zones.id'))
Zone
また、距離とそれがどれほど防御可能であるかについていくつかのビットがありますが、それはこれには関係ありません。
- まず、単一テーブル継承の使用
Zone
からサブクラス化されているという事実のために、参照できますか?Entity
zones.id
- 第二に、
Zone.routes
プロパティはマージTransit.start
されTransit.end
ますか?