Например, есть 3 таблицы:
- товары
- product_images
- product_specs
И в моделях этих 3 таблиц есть отношения один к одному.
Показывая 50 товаров на странице, вы получаете +2 дополнительных запроса внутри цикла, так что всего 150 строк и классный объект:
$products = Products::find();
foreach ($products as $product)
{
$product->name;
$product->images->filename;
$product->specs->volume;
}
Или просто создайте собственный метод в модели продуктов и СОЕДИНИТЕ все необходимые таблицы:
$products = Products::getComplete();
foreach ($products as $product)
{
$product->name;
$product->imageFile;
$product->specVolume;
}
Итак, мне интересно: полезна ли первая практика и не создает ли она большую нагрузку на демон MySQL или резко замедляет время выполнения php-скрипта?