好的,我们假设我有一个用户表
class User(ModelBase):
name = Column(String, nullable=False)
一些交易表
class TransactionTypeA(ModelBase):
amount = Column(Integer)
timestamp = Column(DateTime, nullable=False)
user_id = Column(Integer, ForeignKey(User.id))
user = relationship(...)
class TransactionTypeB(ModelBase):
amount = Column(Integer)
timestamp = Column(DateTime, nullable=False)
property_unique_to_b = ...
user = relationship(to user via property_unique_to_b)
是否有一种很好的方法可以创建一些保留与User
的关系的父事务表,这样我就可以查询session.query(func.sum(AllTransactions.amount)).filter(User.id==some_id)
?创建与此类似的表的唯一方法是使用non-traditional mappings将其映射到某个UNION ALL
选择。如果我使用联接表继承,我删除timestamp
和amount
的重复,但我仍然无法获得与User
表的事务的任何全局关系。