我注意到许多SQLAlchemy教程会将relationship()
用于“连接”多个表,可能是他们的关系是一对一,一对多或多对多。但是,在使用原始SQL时,就我所知,您无法定义表显式之间的关系。
在什么情况下需要relationship()
而不是必需的?为什么我们必须在SQLAlchemy中明确定义表之间的关系?
答案 0 :(得分:5)
在SQL中,表格通过外键相互关联。在ORM中,模型通过关系相互关联。您不需要使用关系,就像您不需要使用模型(即ORM)一样。映射类使您能够使用表,就好像它们是内存中的对象一样;在相同的行中,关系使您能够使用外键,就好像它们是内存中的引用一样。
您希望设置关系的目的与想要设置模型的目的相同:方便。出于这个原因,两者齐头并进。看到带有原始外键但没有关系的模型是不常见的。