我有一个数据库表images
,第二个objects
。 images
表格中包含与object_id
。objects
字段相关的id
主键。
现在在POST之后我按照发布的ID选择图像,循环结果并按主键选择适当的对象:
// 1 query
$images = Model_Image::find(array('where' => array('approved' => 0, array('object_id', 'in', Input::post('objects'))));
foreach($images as $image)
{
// now get it's object
// 2 queries
$obj = Model_Object::find_by_pk($image->object_id);
$obj->image = 1;
// 3 queries
$obj->save();
}
问题是,我想知道,我应该如何正确地解决这个问题 - 我认为使用CRUD并不总是一个好主意,可能会影响性能,即使它看起来很漂亮并且使用它感觉很好。但牺牲性能真的值得吗?可以说,我们有10个图像需要编辑,因此可以生成 11个查询来执行简单的操作。
我的意思是,我可以简单地使用以下查询来完成所有操作......
UPDATE `objects` SET `image` = 1
LEFT JOIN `images` ON(`image`.`object_id` = `object.id`)
WHERE `images`.`approved` = 0 AND `images`.`id` IN ([post ids]);
在这种情况下仍然值得使用CRUD吗?