在许多应用程序中实现“喜欢”是非常简单的任务。然而,我正在开发的应用程序中的喜欢的问题是:有许多实体可以“喜欢”(例如:帖子,照片等)。
我目前推出了一个管理喜欢的简单Likeable
课程。我喜欢的表看起来像这样:
like_table = Table('like', metadata,
Column('id', Integer, Sequence('like_id_seq'),
primary_key=True),
Column('entity_id', Integer, index=True),
Column('entity_type', String(32)),
Column('user_id', Integer, ForeignKey('user.id')))
创建新内容时,entity_type
会为此Likeable
分配{{1}},以反映所喜欢元素的类型。
但是,我知道这远非良好做法。 我应该如何实现喜欢以及我的数据库架构应该是什么样子以使其更加SQLAlchemish?
答案 0 :(得分:0)
看看SA的Generic Associations示例。它完全符合您的要求
代码位于安装的example
目录中,或者可以浏览here
最简单的实现discriminator_on_association.py与您的代码最相似。