Форум → Разработка → Базы данных → Наилучший способ выбрать ограниченное количество связанных записей к основным
Наилучший способ выбрать ограниченное количество связанных записей к основным
-
Вот есть у нас допустим мероприятия и участники этих мероприятий. И нужно, значит, вывести 20 мероприятий и по 10 участников к каждому. Какие варианты?
1) сейчас сделано простыми такими запросами в цикле. И я не думаю, что это пиздец какое плохое решение, далее это будет видно
2) лучше всего это дело наверно сделано нативно в mongodb ($slice) http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields
3) мы можем хранить айди 10 записей в таблице мероприятий, потом после выборки мероприятий через один where in выбрать нужных нам участников
4) типа того, но не храним а делаем group concat (получаем больше 10, но потом ограничиваем до 10)
5) выборка через переменные
Но тут задача несколько усложняется - выбирать нужно не просто 10 каких-то участников, а сортировать их по дате последнего визита (новые сверху). Вот тут у нас сразу отпадают варианты 2, 3.
А как бы вы решали такую задачу? -
3 августа 2011 г. 13:34, спустя 21 минуту 8 секунд
А как бы вы решали такую задачу?
раньше любым из приведенных тобой примеров, сейчас я ы тупо повесил триггер на изменение таблицы участников и сделал сводную таблицу, в которой хранил бы только по 10 пиздюков жаждущих на следующий митинг за какого нить пидораса, за который будет выплачено 250 рублей на харюСапожник без сапог -
3 августа 2011 г. 13:45, спустя 10 минут 51 секунду
как бы вариант, да, ноНо тут задача несколько усложняется - выбирать нужно не просто 10 каких-то участников, а сортировать их по дате последнего визита (новые сверху)
то есть нам нужно выбрать участников, заджоинить к ним пользователей, отсортировать по last_visit_date и только тогда взять лимит 10 -
3 августа 2011 г. 14:15, спустя 30 минут 42 секунды
как бы вариант, да, но
прости, ты понимаешь что я не читал тво текст больше 2 строк :-)
ну при последнем визите писать в ту таблицу)) либо вообще в memcache склаыдвать айдишники митингов и участников, а там уже делать срез из последних и складывать только сортрованный остатокСпустя 22 сек.мемкеш - чтобы сильно ио не грузить, а то логин - обычная операция и частая)Сапожник без сапог -
3 августа 2011 г. 14:46, спустя 30 минут 54 секунды
логин - обычная операция и частая
у нас это даже не при логине а при просмотре любой страницы.либо вообще в memcache склаыдвать айдишники митингов и участников, а там уже делать срез из последних и складывать только сортрованный остаток
ваще не понял как это
Пожалуйста, авторизуйтесь, чтобы написать комментарий!