【问题标题】:HABTM-Relation : Create a relation for all other recordsHABTM-Relation :为所有其他记录创建关系
【发布时间】:2009-10-14 15:02:12
【问题描述】:

如果我想向 TABLE A 添加一条记录,有没有一种有效的添加方式 TABLE B 中的许多(或全部)记录的 JOIN TABLE 记录?

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我已经熟悉了HABTM关系的原理以及在cakephp中如何处理它们。我要求一种在不耗尽缓存的情况下处理大量新关系的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多