2009-10-14 113 views
0

如果我想将记录添加到表A,有没有添加 在记录的有效方式连接表许多(或全部)记录在表BHABTM-关系:为所有其他记录的关系

我尝试构建一个简单的任务管理(在CakePHP中)。用户添加一个任务,并且 将被添加到与当前用户相同的组中的每个其他用户的连接。目前,我使用find('list') - 方法来检索ID并将它们存储在一个变量中。但我认为,如果组数增长,缓存将不会处理单个变量中的这些数据量。

回答

1

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

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

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

+0

我已经熟悉HABTM关系的原理以及如何在cakephp中处理它们。 我要求一种处理大量新关系的方法,而不会耗尽缓存。 – Benedikt 2009-10-15 11:13:04