HABTM-Relation:为所有其他记录创建关系

时间:2009-10-14 15:02:12

标签: database cakephp model controller has-and-belongs-to-many

如果我想将记录添加到表A ,是否有一种有效的添加方式 表B 中的许多(或所有)记录的 JOIN TABLE 中的记录?

我尝试构建一个简单的任务管理(在CakePHP中)。用户在那里添加任务 将添加一个连接到与该组相同的组中的每个其他用户 当前用户。

目前,我使用find('list') - 方法来检索ID和 将它们存储在变量中。但我想如果团队成长,PHP 缓存不会在单个变量中处理此数据量。

1 个答案:

答案 0 :(得分:1)

你应该研究Cake Has-And-Belongs-To-Many(HABTM)关系。检查蛋糕书。它允许您使用连接表在两个表之间创建关系,并将根据应用程序中的请求自动检索和保存值。

但请注意,从一个模型中,您不能(默认情况下)按相关模型上的条件进行过滤(在本例中,是连接表相关的模型)。为此,您需要使用Containable行为,这将允许您在相关表上设置过滤条件。

另一个警告是,我不知道在连接表中添加关于关系的一些信息(开箱即用)。例如,如果您想(在连接表中)记录用户是否已完成任务,则必须在那里编写自己的东西。我通常通过为连接表创建一个模型来解决这个问题,然后每当我想要检索特定于连接关系的数据时,我就会调用它。通过这种方式,您还可以轻松地从连接表中提取数据。还有其他人有更好的解决方案吗?