Consultas Relacionadas

hola, estoy haciendo un sistema con extjs4 y yii.

es mi 1º projecto en yii.

bueno, trabajo con tablas bastantes grades, con muchos datos y muchos datos relacionados.

La velocidad en mi tipo de sistema es fundamental

Activando el trace de los logs de yii, veo que para abrir un simples grud con 3 campos relacionados, el yii hace la consulta de todos las relaciones de todos los datos, incluso de relaciones de las tableas relacionadas.

ej: grud de la tabla pkg_user

tabla pkg_user esta relacionada con: pkg_tariff, pkg_agents y pkg_grupos

tabla pkg_gentes esta relaciona tambien con pkg_tariff y con pkg_grupos

tabla pkg_grupos esta relacionada con pkg_modulos

tabla pkg_modulos con pkg_sub_modulos

El tema es que yii hace todas estas consultas secundarias, que a mi entender no es preciso.

En este grud user, llega hacer mas de 20 consultas sql.

Hay como no hacer las consultas secundarias?

Saludos

Hola Magnus,

Yii no hace consultas de tablas relacionadas a menos q sea necesario.

Si yo solicito en un modelo un dato de una tabla foránea, Yii tendrá que hacer la consulta para traer esos datos… de todas formas hay maneras para simplificar el número de consultas :)

una es usando los parámetros "with" y "together"… con with se incluyen las relaciones deseadas… y con together hace q se traigan en una sola consulta…

Podría ser algo como:




$v = MiTabla::model()->with('nombreRelacion')->together()->findAll();



Saludos

realmente mejora la velocidad, muchas gracias