我对Postgres很陌生,对SQLAlchemy也很陌生,因此,如果这是一个愚蠢的问题,我深表歉意。
我花了一些时间在谷歌上搜索并阅读有关SQLAlchemy的文档,但是我似乎找不到直接的答案。
所以,我的问题是这个。
由于在使用ORM时关系是在代码中定义的,如果数据库表结构定义了必要的列字段,那么您实际上是否还需要在数据库本身中定义ForeignKey约束?
我知道约束可以帮助加强完整性,但是成功的ORM实施是否需要这些约束?
答案 0 :(得分:0)
外键约束不需要才能存在,以便成功执行ORM。我认为ORM尝试自行管理这类事情而不是遵循数据库最佳实践可能是最常见的。
我个人对这种方法有疑问。我通常会处理企业数据库,该企业数据库具有许多用多种不同语言编写的程序来访问数据库。其他程序只是 not ,即使有可能,也要删除行并通过调用ORM来级联删除操作。
某些ORM支持“旧式”数据库,这意味着可以将ORM配置为处理已经实现了任意约束的数据库,具有多列而不是每个表的ID号的主键,级联的更新和删除等等。
无论如何,数据库属于企业,而不是ORM。对这个想法的支持也各不相同。