【发布时间】:2011-01-11 22:31:10
【问题描述】:
在SQLAlchemy ORM tutorial中,大致描述了创建对象关系的过程如下。假设我有一个表 Articles、一个表 Keywords 和一个创建多对多关系的表 Articles_Keywords。
article = meta.Session.query(Article).filter(id=1).one()
keyword1 = meta.Session.query(Keyword).filter(id=1).one()
keyword2 = meta.Session.query(Keyword).filter(id=2).one()
article.keywords = [keyword1,keyword2]
meta.Session.commit()
我已经有了相关关键字的主键 ID 号,所以我需要做的就是将这些 ID 添加到链接到本文的 Articles_Keywords 表中。问题是,为了使用 ORM 做到这一点,我必须从数据库中选择所有关键字,这似乎无缘无故地增加了很多开销。
有没有办法在不运行任何 SQL 来选择关键字的情况下创建这种关系?
【问题讨论】:
标签: python performance orm sqlalchemy