所以我最近继承了一些使用由通用 MySQL 数据库支持的 SqlAlchemy 的应用程序。我对 python 还很陌生,没有使用 SqlAlchemy 的经验。
1 个系统为仅在该应用程序中使用的表定义了 FK。但是,其他表都没有定义任何约束。其他表的所有关系都在 ORM 中的应用程序级别定义。作为 SqlAlchemy 的新手,我现在想知道这是否只是草率的代码演变,或者是否可以对这种不一致进行合理的解释。
仅依赖 ORM 建立关系与在持久性和应用程序级别之间保持约束同步的优点/缺点是什么?
谢谢
最佳答案
DB FK 提供两个显着优势:
- 它将创建一个索引来优化连接性能
- 它将在数据库级别确保您的应用程序不会粘贴没有对等点的无效 key ,从而增强其一致性
除非您需要数据库中的灵 active 来拥有无效键,否则我强烈建议对您计划加入的所有关系使用 FK 约束。
关于mysql - 如果使用 SqlAlchemy 在 ORM 级别模拟它们,是否需要数据库中的 FK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051870/