2014-12-01 46 views
1

考慮多對一關係:Article-to-Keyword。
一篇文章只有一個關鍵詞,單個關鍵詞可以被多篇文章引用。現在SQLAlchemy:將多個實例映射到同一行

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) 

,我希望能夠具有相同name價值
keyword表中的唯一行的Keyword多個實例相關聯。

這樣節省a1a2

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

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

不會產生違反唯一約束。

目前,人們必須創建附加查詢從keyword表中提取FK,並將其設置爲Article對象爲Article.keyword_id

對真實世界的模式非常無聊。

+0

@van請刪除評論。 DRY;) – vucalur 2015-06-25 15:51:18

回答