PHP + MySQL + PDO'de bunu yapmak için çok daha yavaş olur
- Adıyla bir öğenin kimliğini alın
- Kimliği göre madde veri alın
sadece daha
- Adıyla öğe veri alın
İkincisi yani Açıkçası daha hızlı, tek bir sorgu. Olsa temiz kod için eski yapar (öğenin kimliği çoğu zaman da sadece önceden bilindiği için), bu yüzden performans farkı kadar küçük olursa daha iyi olurdu.
Bunu kullanıyorum kodu:
public function actionView () {
// read http request
...
// get item
$itemModel = new Rust_Model_Item();
try {
$id = $itemModel->getItemIdByUrlTitle($urltitle);
$item = $itemModel->getItem($id); // lots of data
} catch (Rust_Model_Item_NotFoundException $e) {
throw new FastMVC_Web_Error(404, 'Item not found');
}
...
}
public function getItem ($ id) {
$item = $this->getItemBasics($id);
$catModel = new Rust_Model_Category();
$item['category'] = $catModel->getById($item['category_id']);
$ratingModel = new Rust_Model_Rating();
$item['rating'] = $ratingModel->getForItem($id);
$pageModel = new Rust_Model_Page();
$item['pages'] = $pageModel->getListForItem($id);
$tagModel = new Rust_Model_Tag();
$item['tags'] = $tagModel->getForItem($id);
return $item;
}