CakePHP是否在代码级别处理FK或者我是否应该将FK添加到我的数据库中?

jed*_*mao 4 mysql cakephp foreign-keys

如果我使用ON DELETE CASCADE添加FK,我会在以后遇到后果吗?

如果没有,我应该在MySQL中为CakePHP使用什么命名约定用于FK?

dec*_*eze 7

您可以在此处查看命名约定.

Cake根据您的模型关联和命名约定隐含的关联来处理代码中的FK /关系.您可以通过在数据库级别定义FK关系来添加额外的"强制执行"层.如果你的数据库尊重这些,那么你就更难自拔,但这并不是必需的.它增加了在Cake的模型和数据库中保持关系同步的额外开销.

  • 根据我的经验,Cake不会强制FK有效,因此DB会这样做.就像您可以插入无效的FK密钥一样,如果DB FK-s到位,DB将拒绝该插入.我认为在使用Cake只处理FK-s之前应该知道这一点.(另请注意,Cake的CLI模式更新程序不能很好地处理DB FK-s:它可以保存它们,但更新将失败,因为依赖关系不是按正确的顺序创建的.) (2认同)