为什么CMS数据库(例如WP和PRESTASHOP)不在表上使用外键?我认为表应该有外键来防止孤立行。
答案 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的名气。