Mysql 如果需要,数据库中是否需要FK';使用SqlAlchemy在ORM级别重新模拟?

Mysql 如果需要,数据库中是否需要FK';使用SqlAlchemy在ORM级别重新模拟?,mysql,orm,sqlalchemy,Mysql,Orm,Sqlalchemy,因此,我最近继承了一些使用SqlAlchemy的应用程序,这些应用程序由一个常见的MySQL数据库支持。我对python非常熟悉,没有SqlAlchemy方面的经验 1系统为仅在该应用程序中使用的表定义了FKs。但是,其他表都没有定义任何约束。其他表的所有关系都是在ORM中的应用程序级别定义的。作为SqlAlchemy的新手,我现在想知道这是否只是草率的代码进化,或者是否有一个逻辑解释来解释这种不一致性 与保持持久性和应用程序级别之间的约束同步相比,完全依赖ORM来处理关系有哪些优点/缺点 谢谢

因此,我最近继承了一些使用SqlAlchemy的应用程序,这些应用程序由一个常见的MySQL数据库支持。我对python非常熟悉,没有SqlAlchemy方面的经验

1系统为仅在该应用程序中使用的表定义了FKs。但是,其他表都没有定义任何约束。其他表的所有关系都是在ORM中的应用程序级别定义的。作为SqlAlchemy的新手,我现在想知道这是否只是草率的代码进化,或者是否有一个逻辑解释来解释这种不一致性

与保持持久性和应用程序级别之间的约束同步相比,完全依赖ORM来处理关系有哪些优点/缺点


谢谢

DB FKs提供了两个显著的好处:

  • 它将创建一个索引,以优化连接性能
  • 它将确保在DB级别,您的应用程序不会粘贴没有对等的无效密钥,从而增强其一致性

  • 除非您需要DB中的灵活性来拥有无效密钥,否则我强烈建议对您计划加入的所有关系使用FK约束。

    DB FKs有两个显著的好处:

  • 它将创建一个索引,以优化连接性能
  • 它将确保在DB级别,您的应用程序不会粘贴没有对等的无效密钥,从而增强其一致性
  • 除非您需要DB中的灵活性来拥有无效键,否则我强烈建议您对所有计划加入的关系使用FK约束