如果使用SqlAlchemy在ORM级别模拟数据库中是否需要FK?

时间:2017-03-27 16:36:21

标签: mysql orm sqlalchemy

所以我最近继承了一些使用由常见MySQL DB支持的SqlAlchemy的应用程序。我对python非常环保,没有使用SqlAlchemy的经验。

1个系统为仅在该应用程序中使用的表定义了FK。但是,其他表都没有定义任何约束。其他表的所有关系都在ORM中的应用程序级别定义。对于SqlAlchemy来说,我现在想知道这是否只是草率的代码演变,或者是否存在对这种不一致性的合理解释。

什么是优点/缺点完全依赖于ORM的关系与保持持久性和应用程序级别之间的约束同步?

感谢

1 个答案:

答案 0 :(得分:0)

DB FKs有两个显着的好处:

  1. 它将创建一个将优化连接性能的索引
  2. 它将确保在数据库级别上您的应用程序无法粘贴没有对等方的无效密钥,从而增强其一致性
  3. 除非您需要DB中具有无效密钥的灵活性,否则我强烈建议您计划加入的所有关系的FK约束。