В Б.Д. есть таблицы `
doctors` и `
clinics`
Упрощенно: (пишу только поля, которые нужны для Сабжа...)
Таблица clinics:
id,
name (клиники)
Таблица doctors:
id,
name (доктора)
Таблица clinics_doctors:
id,
clinic_id,
doctor_id (привязка: доктор/клиника)
Один доктор может работать в нескольких клиниках. Связи есть. Yii2 модели: Clinics, Doctors, ClinicsDoctors
Задача - получить список всех врачей определенной клиники...
Как я делаю:// Получаю массив ID всех врачей клиники (для примера, клиники id = 1)
$doctors_array = ClinicsDoctors::find()->select('doctor_id')->where(['clinic_id' => 1])->column();
// Получаю врачей из таблицы doctors по массиву ID
$doc_clinics = Doctors::find()->where(['IN', 'id', $doctors_array])->all();
Это работает. Но смущает, что в массиве может быть несколько сотен ID. А если это доктора клиник целого города...
Думаю, что решение должно быть красивее.
Можно и в
Redis хранить множества доктор/клиники (это не столь важно)