【发布时间】:2021-02-10 14:51:14
【问题描述】:
我正在尝试使用 SQLAlchemy 构建数据库,我的问题是我有两个具有相同列名的表,并试图从另外两个表中填充第三个表。下面有一个简单的图表来说明:
我通常在一张表上设置外键,在另一张表上设置关系:
class TableA(Base):
__tablename__ = "tableA"
id = Column(Integer, primary_key=True)
name = Column(String(100))
age = Column(Integer)
name_relation = relationship("TableC", backref='owner')
class TableC(Base):
__tablename__ = "tableC"
id = Column(Integer, primary_key=True)
name = Column(String(100), ForeignKey('tableA.name'))
age = Column(Integer)
你可以看到这个方法只能对两个表起作用,因为我在tableC上的ForeignKey为name指定了tableA的名字。
有没有办法做到这一点?
谢谢
【问题讨论】:
-
您是在尝试一次性复制,还是在寻找
view?这本质上是一个返回任何你喜欢的子查询的快捷方式。您也可以将其存储为表格 - 然后您可以添加索引和内容,但您必须手动更新视图。在这种情况下,视图被称为materialized -
我正在尝试一次性复制而不是视图,我认为可以使用 SQLAlchemy 自动复制。
-
所以你想将
A和B的内容复制到C一次?是否有不想使用常规 SQL 的理由? -
是的,仅出于专业原因
标签: python database database-design sqlalchemy