Python SQLAlchemy:将多个实例映射到同一行

Python SQLAlchemy:将多个实例映射到同一行,python,orm,sqlalchemy,relational-database,Python,Orm,Sqlalchemy,Relational Database,考虑多对一关系:文章到关键词。 一篇文章只有一个关键字,一个关键字可以被多篇文章引用 class Article(Base): __tablename__ = 'article' id = Column(Integer, primary_key=True) keyword_id = Column(Integer, ForeignKey('keyword.id')) keyword = relationship("Keyword") class Keyword(B

考虑多对一关系:文章到关键词。
一篇文章只有一个关键字,一个关键字可以被多篇文章引用

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)
现在,我希望能够将具有相同
名称
值的
关键字
的多个实例关联起来
使用
关键字表中的唯一一行

因此,保存
a1
a2

a1 = Article()
a1.keyword = Keyword(name="science")

a2 = Article()
a2.keyword = Keyword(name="science")
不会产生唯一的约束冲突

目前,必须创建从
关键字
表中获取FK的附加查询,并在
文章
对象中将其设置为
文章.keyword\u id

使用真实世界的模式会变得非常枯燥。

看一看配方