使用 MyISAM 的 Django 外键完整性

Posted

技术标签:

【中文标题】使用 MyISAM 的 Django 外键完整性【英文标题】:Django foreign key integrity with MyISAM 【发布时间】:2012-04-28 02:14:11 【问题描述】:

如果 MyISAM 没有 FK 完整性,使用 MyISAM 表的 django 应用程序如何强制 FK 约束的完整性?

【问题讨论】:

【参考方案1】:

不好。它会根据已经从先前交互中加载的信息,在引用对象更改时尽其所能发出更新和删除,但是没有什么可以保护您的数据不变得不一致。

ForeignKey 构造的存在较少声明完整性约束,因为它告诉 django 不同的表如何链接在一起,因此您可以在 python 中通过属性遍历其他类型的其他模型实例。 orm 驱动的级联充其量是解决 MyISAM 等数据库缺点的创可贴。如果这对您很重要(而且应该如此),您应该从 MyISAM 引擎迁移到 InnoDB 或 PostgreSQL。

【讨论】:

同意。此外,您现在在 db 级别没有完整性检查。因此,如果有人可以访问数据库并进行更改,则不再涉及 django。

以上是关于使用 MyISAM 的 Django 外键完整性的主要内容,如果未能解决你的问题,请参考以下文章

Django中ORM外键和表的关系(Django编程-4)

Mysql外键约束设置使用方法

Mysql外键约束设置使用方法

Mysql引擎

Mysql引擎

mysql外键