假设我定义了以下表/关系:
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_notification
和post_notification
中一样。有任何想法吗?