是否有必要在SQLAlchemy中使用`relationship()`?

Sea*_*ais 3 python sqlalchemy

我注意到许多SQLAlchemy教程会将relationship()多个表"连接"在一起,可能是一对一,一对多或多对多.但是,在使用原始SQL时,据我所知,您无法明确定义表之间的关系.

在什么情况下relationship()需要而不是必需的?为什么我们必须在SQLAlchemy中明确定义表之间的关系?

uni*_*rio 5

在SQL中,通过外键相互关联.在ORM中,模型通过关系彼此相关.您不需要使用关系,就像您不需要使用模型(即ORM)一样.映射类使您能够使用表,就好像它们是内存中的对象一样 ; 在相同的行中,关系使您能够使用外键,就像它们是内存中的引用一样.

您希望为与设置模型相同的目的设置关系:方便.出于这个原因,两者齐头并进.看到具有原始外键但没有关系的模型是不常见的.