gpt4 book ai didi

python - 在python中使用sqlalchemy对三个表之间的数据库多对多关系建模

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:10 25 4
gpt4 key购买 nike

让我们考虑以下用于 python 中的 sqlalchemy 的表模型。

class Worker(Base):
id Column(Integer, primary = True)
name Column(String, nullable = False)

class Project(Base):
id Column(Integer, primary = True)
name Column(String, nullable = False)

class Rating(Base):
id Column(Integer, primary = True)
description Column(String, nullable = False)

让我们考虑对这些表的一些限制。 (请不要质疑这个例子的意义,这是我想出的最好的描述我想学习的东西。:-))

  1. 一个 worker 可能有多个项目要处理。
  2. 一个项目可能有多个worker分配给它工作。
  3. 对于每个元组 (worker, project) 你有一个不同的 rating

我明白,我有三个多对多的关系。它们是:

  1. worker 和项目
  2. 工作人员和评级
  3. 评级和项目

我在定义两个表之间的多对多关系时没有问题。我只需要将以下关联表和关系添加到我的模型中。

worker_project = Table('worker_project', METADATA,
Column('worker_id', Integer, ForeignKey('workers.id')),
Column('project_id', Integer, ForeignKey('projects.id')),

class Worker(Base):
# [...]
papers = relationship('Project',
secondary=worker_project,
backref='workers')

我失败的地方是像上面描述的那样链接表格“ratings”。感谢任何帮助。

最佳答案

让评分表像这样。

  Rating
---------------------
rating_id (primary key)
worker_id (foreign key - worker(worker_id))
project_id (foreign key - project(project_id))
description

如果我理解正确的话,那就是。

关于python - 在python中使用sqlalchemy对三个表之间的数据库多对多关系建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com