【发布时间】:2011-05-17 15:45:23
【问题描述】:
我有文章-类别关系,我想在必要时更新该关系。这意味着,从文章中添加或删除所需的类别。我使用带有 Doctrine 1.2 的 php (ZF) 设置。在 YAML 中,配置看起来(简化)如下:
Article:
columns:
id: bigint(10)
Category:
columns:
id: bigint (10)
relations:
articles:
foreignAlias: categories
class: Article
refClass: CategoryArticle
CategoryArticle:
columns:
category_id: bigint (10)
article_id: bigint (10)
relations:
category:
class: Category
foreignAlias: categoryArticle
article:
class: Article
foreignAlias: categoryArticle
我有一个持久化的 $article,其中所有旧类别都可用。通过 POST 请求,我得到一个类别 id 列表,应该是新的。到目前为止我有这个:
$oldCategories = array();
foreach ($article->categories as $cat) {
$oldCategories[] = $cat->id;
}
$newCategories = $form->getValue('categories');
$diffRemove = array_diff($oldCategories, $newCategories);
$diffAdd = array_diff($newCategories, $oldCategories);
foreach ($diffRemove as $id) {
// Remove all the categories $id from article [1]
}
foreach ($diffAdd as $id) {
// Add all the categories $id to article [2]
}
我的问题是关于 [1] 和 [2]。添加和删除多对多关系的最佳性能是什么?
【问题讨论】:
-
您使用的是哪个版本的学说?
标签: php database zend-framework doctrine many-to-many