【发布时间】:2014-05-13 16:03:11
【问题描述】:
这是我试图模拟的情况:
有users,可分为rider或driver。每个ride 都有一个rider 和一个driver。我可以想象使用ride 对象,我可以在其中调用ride.driver 或ride.rider。但我发现很难从另一个方向推断它。对于任何用户u,当我调用u.rides 时,不清楚它是否应该返回u 是司机或骑手的游乐设施。
我也可以分别有两个关系,这样u.rides_as_driver 返回你是司机的游乐设施,u.rides_as_rider 返回你是骑手的游乐设施。
这是对我刚才描述的关系建模的好方法吗?
更新
如果这是一个好方法,我如何在 SQLAlchemy 中实现这一点?特别是在这个设计中如何使用 backref?
接下来是我的尝试:
class Ride:
driver = db.Relationship('User', primaryjoin=driver_id==user.id)
rider = db.Relationship('User', primaryjoin=rider_id==user.id)
class User:
rides_as_rider = db.Relationship('Ride', primaryjoin=id==ride.rider_id)
rides_as_driver = db.Relationship('Ride', primaryjoin=id==ride.driver_id)
【问题讨论】:
标签: python sqlalchemy relationship