0

如果我想向TABLE A添加一条记录,是否有一种有效的方法可以在JOIN TABLE中为TABLE B中的许多(或所有)记录添加一条记录?

我尝试构建一个简单的任务管理(在 CakePHP 中)。一个用户添加了一个任务,并且将与当前用户在同一组中的每个其他用户添加一个连接。

目前,我使用 find('list') 方法检索 ID 并将它们存储在变量中。但我认为如果组增长,PHP 缓存将无法在单个变量中处理这么多数据。

4

1 回答 1

1

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

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

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

于 2009-10-14T18:14:19.357 回答