【发布时间】:2017-09-28 14:37:55
【问题描述】:
我注意到许多 SQLAlchemy 教程会使用relationship() 将多个表“连接”在一起,它们的关系可能是一对一、一对多或多对多。但是,据我所知,在使用原始 SQL 时,您无法显式定义表之间的关系。
在什么情况下relationship() 需要和不需要?为什么我们必须在 SQLAlchemy 中显式定义表之间的关系?
【问题讨论】:
标签: python sqlalchemy
我注意到许多 SQLAlchemy 教程会使用relationship() 将多个表“连接”在一起,它们的关系可能是一对一、一对多或多对多。但是,据我所知,在使用原始 SQL 时,您无法显式定义表之间的关系。
在什么情况下relationship() 需要和不需要?为什么我们必须在 SQLAlchemy 中显式定义表之间的关系?
【问题讨论】:
标签: python sqlalchemy
在 SQL 中,表通过外键相互关联。在 ORM 中,模型通过关系相互关联。您不需要使用关系,就像您不需要使用模型(即 ORM)一样。映射类使您能够处理表就好像它们是内存中的对象;同样,关系使您能够使用外键就好像它们是内存中的引用。
您想建立关系的目的与建立模型的目的相同:方便。为此,两者携手并进。具有原始外键但没有关系的模型并不常见。
【讨论】: