sqlalchemy - 在 SQLAlchemy 中创建具有关系的对象的正确方法是什么
问题描述
我有两个模型,一个 SQLite 数据库上的 Parent 和 Child。
class Parent(Base):
__tablename__ = 'PARENTS'
id = Column(Integer, primary_key=True)
name = Column(String(50), nullable=False, sqlite_on_conflict_unique='IGNORE')
children = relationship("Child", back_populates="parent")
class Child(Base):
__tablename__ = 'CHILDREN'
id = Column(Integer, primary_key=True)
name = Column(String(50), nullable=False)
parent_id = Column(Integer, ForeignKey('PARENTS.id'), nullable=False)
parent = relationship("Parent", back_populates="children")
我需要创建如下的孩子:
session.add(Child(name="...",parent=Parent(name="..."))
,即我想创建一个具有其名称和父级名称的子级。我想知道哪种方法最好。我可以指示 SA 去为我从 parent.name 中检索 parent.id 选择父母吗?我可以利用某种缓存机制来不为每个添加的子表查询父表(很少更改父表)。当我创建一个新的孩子时,我不需要创建一个新的父母,但我希望它链接到一个已经存在的父母。此外,我需要快速创建一长串孩子(例如,用于播种数据库)。
谢谢。
解决方案
推荐阅读
- c - 如何使用 epoll 从多个客户端接收多个缓冲区?
- neo4j - Neo 4j 中为节点定义的属性/属性的限制是什么?
- c++ - Similar Char(TCS CodeVita) 减少时间复杂度
- d3.js - 过滤d3时如何突出显示分组图表的一部分
- python - 在一行中的列表中添加相同值的 Pythonic 方式?
- entity-framework - 设置项目时如何更改 App.config 和数据库 (sqlite) 中的连接字符串?
- python-3.x - 在 Python 中模拟 10,000 个硬币翻转非常慢
- c# - 如何修复错误 CS1738 命名参数规范必须在指定所有固定参数后出现
- python - 将 Pandas 系列中的项目转换为日期时间
- java - Java中枚举的缺点是什么?