Это немного сложно объяснить, поэтому я постараюсь быть максимально ясным.
В моем проекте CakePHP предположим, что у меня есть модель с именем Country
, а Country
имеетhasMany
ассоциация с Region
.Теперь Region
также имеет ассоциацию hasMany
с User
, в то время как страна этого не делает (поскольку Region
s иногда можно переключать на другую страну, поэтому ассоциирование пользователей с Country
с помощью внешнего ключаэто не вариант).
Итак, сейчас мой SQL будет выглядеть примерно так: (только порциями)
users: id int(16); region_id int(16);
regions: id int(16); country_id int(16);
countries: id int(16);
Что я хочу сделать, это найти функцию, иличто-то вроде counterCache
в CakePHP, к которому я могу получить доступ через модель "Страны" и получить счет User
в Region
, который принадлежит Country
.Я знаю, что могу просто получить [Пользователь] [Страна], пройтись по регионам и сосчитать его, но есть ли для этого кешированный метод, который (предпочтительно) не требует дополнительного кода?
Спасибо!