如果使用ORM,是否需要在数据库中定义关系?

时间:2019-06-19 17:28:23

标签: python postgresql sqlalchemy

我对Postgres很陌生,对SQLAlchemy也很陌生,因此,如果这是一个愚蠢的问题,我深表歉意。

我花了一些时间在谷歌上搜索并阅读有关SQLAlchemy的文档,但是我似乎找不到直接的答案。

所以,我的问题是这个。

由于在使用ORM时关系是在代码中定义的,如果数据库表结构定义了必要的列字段,那么您实际上是否还需要在数据库本身中定义ForeignKey约束?

我知道约束可以帮助加强完整性,但是成功的ORM实施是否需要这些约束?

1 个答案:

答案 0 :(得分:0)

外键约束不需要才能存在,以便成功执行ORM。我认为ORM尝试自行管理这类事情而不是遵循数据库最佳实践可能是最常见的。

我个人对这种方法有疑问。我通常会处理企业数据库,该企业数据库具有许多用多种不同语言编写的程序来访问数据库。其他程序只是 not ,即使有可能,也要删除行并通过调用ORM来级联删除操作。

某些ORM支持“旧式”数据库,这意味着可以将ORM配置为处理已经实现了任意约束的数据库,具有多列而不是每个表的ID号的主键,级联的更新和删除等等。

无论如何,数据库属于企业,而不是ORM。对这个想法的支持也各不相同。