Считаю, что нужно делать то, что требует бизнес-логика,
Но считаю что дата всегда должна храниться как дата,
в месяце не всегда 31 день,
Если у вас экскурсии планируется проводить каждую неделю в определенные дни всегда(например экскурсия проводится по вторникам и четвергам в течении всей жизни экскурсии), и без изменений, то можно допустить хранение вместо даты день недели,
Но, как я понимаю данные хранятся не только для планирования, но и для отчетности, как вы поступите если вам нужно будет составить годовой отчет, с указанием количества проведенных экскурсий для каждого месяца?
1. Вы все также сортируете по ID а не полю с названием страны, региона
эмм. может я чего не знаю о Yii, но
ORDER BY country_shipping_address[country_id], region_shipping_address[zone_id]
разве Yii понимает что такое в квадратных скобках?
может нужно имя_таблицы.поле (country_shipping_address.country_id) и не id, а name какой-нибудь, пока не покажете структуру БД (таблицы zone ) дальше я вам помочь не могу
структуру базы можете показать? и то что вы написали? (где не помогло)
еще у вас там кеш используется, за комментируйте для теста строку
$zone_data = $this->cache->get('zone.' . (int)$country_id);
тогда нужно конкретно поставить задачу.
если они общаются в обе стороны, то это скорее костыль, чем решение - использовать для хранения одних и тех же данных в разных по предназначению БД
Все проще, если у вас включен показ ошибок, при любой исключительной ситуации они будут отображаться, если выключить то при наличии try catch ошибок не будет
Можно через Raw Sql как то так
$connection = Yii::$app->getDb();
$command = $connection->createCommand("
SELECT COUNT(subscriber_id) as subscriber_count, subscriber_id, SUM(alive) FROM table GROUP BY subscriber_id);
Но считаю что дата всегда должна храниться как дата,
в месяце не всегда 31 день,
Если у вас экскурсии планируется проводить каждую неделю в определенные дни всегда(например экскурсия проводится по вторникам и четвергам в течении всей жизни экскурсии), и без изменений, то можно допустить хранение вместо даты день недели,
Но, как я понимаю данные хранятся не только для планирования, но и для отчетности, как вы поступите если вам нужно будет составить годовой отчет, с указанием количества проведенных экскурсий для каждого месяца?