为类似对象分组不同的连接路径

时间:2016-12-07 02:01:18

标签: orm sqlalchemy

好的,我们假设我有一个用户表

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选择。如果我使用联接表继承,我删除timestampamount的重复,但我仍然无法获得与User表的事务的任何全局关系。

0 个答案:

没有答案