Мне нужен эффективный способ поиска по моим моделям, чтобы найти конкретного пользователя, вот список,
Пользователь - список пользователей, их имена и т. Д.
События - таблица событий для всех пользователей, когда они недоступны
Навыки - отношения «многие ко многим» с Пользователем, у пользователя может быть много навыков
Контракты - многие-к-одному с Пользователем, Пользователь может работать над несколькими контрактами, каждый из которых имеет оценку (если выполнено)
... и т. д.
Итак, я получил много таблиц, связанных с таблицей User. Мне нужно найти набор пользователей, соответствующих определенным критериям; например, он доступен со следующего четверга по пт, имеет навыки x / y / z и получил в среднем 4 оценки по всем своим завершенным контрактам.
Есть ли какой-нибудь способ сделать этот поиск эффективно, минимизируя количество раз, когда я попал в базу данных? Извините, если это очень новый вопрос.
Спасибо!