will those related data loaded every time?
Данные: нет. Модели: да, родственные модели будут инициализированы.
Because depending of the current view, some linked table will never be used, and actually they are queried every time.
Используйте вмещаемое или recursive
.
It's a big cost for what it brings to us, no?
Ну, может быть, если у вас много отношений. В остальном это просто удобнее.
So how to have this kind of relationship and activate it only when we need it? Some kind of lazy loading which loads the related table only if I need it?
Я не думаю, что ленивая загрузка доступна. Вы всегда можете привязать модель на лету. Но опять же, я бы сказал, что вы беспокоитесь о крошечных оптимизациях. Загрузка этих моделей обычно занимает несколько миллисекунд на каждый запрос.