考虑多对一关系:文章到关键字。
一篇文章只有一个关键字,单个关键字可以被多篇文章引用。
class Article(Base):
__tablename__ = 'article'
id = Column(Integer, primary_key=True)
keyword_id = Column(Integer, ForeignKey('keyword.id'))
keyword = relationship("Keyword")
class Keyword(Base):
__tablename__ = 'keyword'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False, unique=True)
现在,我希望能够关联具有相同Keyword
值的name
的多个实例
使用keyword
表中的唯一行。
这样就可以保存a1
和a2
:
a1 = Article()
a1.keyword = Keyword(name="science")
a2 = Article()
a2.keyword = Keyword(name="science")
不会产生唯一约束违规。
目前,必须创建从keyword
表格中获取FK的其他查询,并将其设置为Article
对象中的Article.keyword_id
。
对现实世界的模式非常无聊。