CakePHP и MySQL, сдвигать определенные строки результатов в начало набора результатов - PullRequest
0 голосов
/ 10 января 2011

Извинения, если об этом уже спрашивали;Я не знаю, как правильно сформулировать вопрос, чтобы найти ответ в SO или Google.

У меня есть запрос в CakePHP, который разбивает на страницы ~ 3500 строк из таблицы модели «Профили» по умолчанию,Каждый профиль может иметь одно ("hasOne") "объявление", которое сместит позицию профиля в наборе результатов на 1, 2 или 3, если найдены (результаты упорядочены по значениям объявления, а затем по значениям профиля).

В моем начальном тестировании у меня было только около 100 профилей в базе данных.Теперь, когда я работаю со всеми ~ 3500 профилями, объединение таблицы объявлений hasOne с таблицей профилей приводит к тому, что запрос занимает почти 8 секунд при ~ 3500 строках.

Вместо того, чтобы найти отношение hasOne вВ каждой строке профиля в большом запросе я хочу сначала выполнить поиск 1-3 результатов объявления / профиля hasOne, а затем поместить эти результаты в начало набора результатов профилей, изменив массив order в параметрах Find.

Есть ли правильный способ сделать это в CakePHP?Я долго искал, но у меня действительно нет ни малейшего понятия, как можно назвать этот процесс, и я хочу убедиться, что по пути я ничего не взломал.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...