我在谷歌搜索这个没有一个好的结果。我在 CakePHP trac 中找到的唯一主题是在没有“真实”解释的情况下关闭的。由于 CakePHP 就像是 php 的 rails 端口之一,而 rails 确实支持这一点,我想知道它为什么不支持这个特性。
好的。但我想决定我的数据库模式将如何,在 RoR 中你有工具,如果你想使用它,你会冒着风险去做。顺便说一句:我不知道交响乐是否也允许这样做。
我在谷歌搜索这个没有一个好的结果。我在 CakePHP trac 中找到的唯一主题是在没有“真实”解释的情况下关闭的。由于 CakePHP 就像是 php 的 rails 端口之一,而 rails 确实支持这一点,我想知道它为什么不支持这个特性。
好的。但我想决定我的数据库模式将如何,在 RoR 中你有工具,如果你想使用它,你会冒着风险去做。顺便说一句:我不知道交响乐是否也允许这样做。
只有 CakePHP 团队肯定知道。团队之一,Nate Abdele,早在 2007 年 2 月就谈到了多列主键:
我可以想出一百万个为什么多列主键是一个愚蠢的想法的其他原因,但我认为 2007 年最重要的一个原因是它打破了网络上的 REST 架构,因为没有单一的参考点数据,并且这些数据现在可能会在您不知情的情况下发生变化,因此无法再从单个 URI 一致地引用对象。
我认为这也是他反对多列外键的论点。
学蛋糕的人说得最好:
我了解到,如果 cakephp 中的某些东西非常困难,那么您可能遇到了设计问题。
——阿西莫
您可以通过将第二列的条件添加到关联中来获得相同的结果吗?
不,支持多列主键的真正原因是为了将 CakePHP 改装到现有的应用程序中。当然,不要提倡这种做法,因为它的设计很糟糕,但是如果您可以选择使用多个主键而不是重新设计现有管理系统的大部分内容,那么简单的选择将是一个非常好的功能。