SQLAlchemy关系的不同表?

时间:2015-05-18 16:10:27

标签: python postgresql sqlalchemy

假设我定义了以下表/关系:

class Post(Base):
   __table_name__ = "post"
   id = Column(Integer, primary_key=True)
   text = Column(String(100))

class Comment(Base):
    __table_name__ = "comment"
    id = Column(Integer, primary_key=True)
    post_id = Column(Integer, ForeignKey("post.id"), nullable=False)
    text = Column(String(100))

现在,我希望收到有关事件的通知,例如“您在评论中被标记”或“您在帖子中被标记”。有没有办法在SQLAlchemy中建立一个可以指向评论或帖子(或其他几个表)的外键关系?类似的东西:

class Notification(Base):
    __table_name__ = "notification"
    id = Column(Integer, primary_key=True)
    target = relationship(??either post or comment??)
    user_id = Column(Integer, ForeignKey("users.id")
    created_date = Column(Datetime, default=datetime.utcnow)

我想你可以把外键放到所有不同的类型上,然后只使用一个null,但这看起来很难看。我也不想为每种类型的通知都有多个表格;与comment_notificationpost_notification中一样。有任何想法吗?

0 个答案:

没有答案