Mysql 文档说CakePHP不支持复合键

Mysql 文档说CakePHP不支持复合键,mysql,foreign-keys,Mysql,Foreign Keys,在“惯例”页面中,这里写着注意事项: CakePHP不支持复合主键。如果要直接操作联接表数据,请使用直接查询调用或添加主键,将其作为普通模型处理 我对这种说法感到非常困惑。复合键是非常基本的,它形成了许多具有标识关系的数据库结构 我正在开发我的模式,并尝试使用复合材料,但这是不可能的 这到底是如何工作的?CakePHP希望您拥有。必须使用某些命名约定。然后,通过一个脚本向CakePHP代码描述它 数据库应具有其主键、备用候选键、外键和约束(视情况而定)。但是引用的行告诉您确保每个表都有一列主键。

在“惯例”页面中,这里写着注意事项:

CakePHP不支持复合主键。如果要直接操作联接表数据,请使用直接查询调用或添加主键,将其作为普通模型处理

我对这种说法感到非常困惑。复合键是非常基本的,它形成了许多具有标识关系的数据库结构

我正在开发我的模式,并尝试使用复合材料,但这是不可能的


这到底是如何工作的?

CakePHP希望您拥有。必须使用某些命名约定。然后,通过一个脚本向CakePHP代码描述它

数据库应具有其主键、备用候选键、外键和约束(视情况而定)。但是引用的行告诉您确保每个表都有一列主键。这意味着,如果您还没有这样一个主键,您可以添加一列,使其成为主键,并将主键列声明为唯一的非空,这就是主键所做的,即作为备用候选键


还应添加任何适当的约束新版本,包括新外键。请注意,旧的外键可以保持原样,因为SQL外键声明只需要引用唯一字段,而不是主键本身。这真的是一个外键声明。您还应该将表中的新外键对和旧外键对约束为引用表中的有效值对,即将组合列声明为组合列的唯一外键。也就是说,您不仅希望主键值和备用键值都在引用的表中,您还希望它们一起出现。

尽管这个响应者很有趣,但并没有真正回答我的问题。有没有一种方法可以在CakePHP中使用复合键?由于数据库设计原因,我无法为多个表创建单个列键。请注意,这合理地回答了您提出的非常普遍的问题。也许你想问一个不同的问题或关于这个问题的部分细节。如果你想要一个更详细的答案,那么写一个更详细的问题。编辑您的问题或询问其他问题。即使您不能更改模式,您自己在这里的引用也表明您可以通过直接查询调用使用php。如果您不明白,请使用RTFM并提出一个明确的问题,说明您所尝试的内容。