为什么CMS数据库不使用外键?

时间:2015-10-15 02:53:39

标签: mysql database content-management-system foreign-keys relational-database

为什么CMS数据库(例如WP和PRESTASHOP)不在表上使用外键?我认为表应该有外键来防止孤立行。

1 个答案:

答案 0 :(得分:1)

摘自一篇文章(显然是WP工作人员) wordpress.org WordPress › Support » Plugins and Hacks » Hacks

  

MySQL的问题是只有少数安装默认为innodb。大多数人使用MyISAM表,因为它们更“初学者友好”。

     

由于这个WordPress,以及我在其中看到的几乎所有其他基于PHP的CMS,必须认为它将使用最小的公分母,因此需要没有引用的MyISAM表,因此它可以是尽可能普及。

     

我将补充说,WP系统已经设置为使用PHP代码来尽可能地强制执行。这就是为什么总是最好使用内置的WordPress功能而不是尝试自己动手。

只有MySQL InnoDB存储引擎强制执行外键声明。但它们被视为MyISAM存储引擎的注释,所以我不知道为什么它们没有被声明。

在“自定义Prestashop软件解决方案和共享和专用虚拟主机服务”成员的帖子 prestashop.com Forum > Technical Forum > Adapting my PrestaShop > Development

  

因为它仅在使用InnoDB时受支持,并非每个人都使用它。

     

顺便说一句,向后兼容性和全面测试并不是Prestashop的名气。