Требуется на главной сайта выводить новости согласно замысловатому алгоритму.
Грубо говоря таблица ностей будет представлять из себя матрицу 4х7, если изобразить схематично...
рубрики рубрики рубрики рубрики
+++++сегодня++++++++++++
новость новость новость новость
+++++вчера+++++++++++++
новость новость новость новость
+++++позавчера++++++++++
новость новость новость новость
+++++и.т.д++++++++++++++
новость новость новость новость
++++++++++++++++++++++
новость новость новость новость
++++++++++++++++++++++
новость новость новость новость
++++++++++++++++++++++
новость новость новость новость
Т.е новости разделены по дням и соответствующим рубрикам. И если для каждой новости в отдельности создавать несколько запросов(нужно проверить новость на соответствие рубрике, на дату и на рейтинг), то не слишком ли много запросов будет к базе и не чревато ли это будет при большой посещаемости? Можно ли как-то облегчить сей процесс вывода?)
Спустя 19 минут, 45 секунд (14.07.2010 - 11:41) Rand написал(а):
Какая-то странная таблица. Столбцы в таблице должны быть - рубрика, текст новости, дата и т.д.
Делать всего один запрос на выборку всех записей за последние 7 дней, а потом в скрипте уже условным оператором сортировать по полю дата.
Делать всего один запрос на выборку всех записей за последние 7 дней, а потом в скрипте уже условным оператором сортировать по полю дата.
Спустя 38 минут, 27 секунд (14.07.2010 - 12:20) sergeiss написал(а):
Rand - странный ответ Зачем сортировать в скрипте, если это всё можно сделать намного проще сразу же в запросе?
[MI_nor] - мне кажется, лучше сделать отдельную таблицу для самых свежих новостей, соответствующих каждому критерию (ведь именно их ты будешь выводить, да?). Эта таблица будет обновляться только при поступлении новости. А выбрать данные из таблицы в 28 строк... Это одно мгновение
[MI_nor] - мне кажется, лучше сделать отдельную таблицу для самых свежих новостей, соответствующих каждому критерию (ведь именно их ты будешь выводить, да?). Эта таблица будет обновляться только при поступлении новости. А выбрать данные из таблицы в 28 строк... Это одно мгновение
Спустя 1 час, 49 минут, 5 секунд (14.07.2010 - 14:09) Basili4 написал(а):
Rand
можно по событию её наполнять например раз в день убивать её содиржимое и снова выбирать
можно по событию её наполнять например раз в день убивать её содиржимое и снова выбирать
Спустя 1 минута, 27 секунд (14.07.2010 - 14:10) Rand написал(а):
Basili4, я тупанул, допёр потом, удалил своё сообщение, но ты мне уже ответил )) Он же написал, что обновлять при добавлении новости =)
Я вообще сначала подумал, что [MI_nor] нарисовал таблицу в БД, теперь понял, что это дизайн главной страницы
Я вообще сначала подумал, что [MI_nor] нарисовал таблицу в БД, теперь понял, что это дизайн главной страницы
Спустя 4 минуты, 40 секунд (14.07.2010 - 14:15) sergeiss написал(а):
Цитата (Basili4 @ 14.07.2010 - 15:09) |
можно по событию её наполнять например раз в день убивать её содЕржимое |
А зачем? Можно просто по поступлению новости это делать Иначе - информация будет не актуальная.
Спустя 1 минута, 14 секунд (14.07.2010 - 14:16) Basili4 написал(а):
а убивать её как так новости и будут копится
Спустя 23 минуты, 29 секунд (14.07.2010 - 14:40) sergeiss написал(а):
Цитата (Basili4 @ 14.07.2010 - 15:16) |
а убивать её как так новости и будут копится |
Зачем убивать???
Я вот написал ранее в этой теме
Цитата (sergeiss @ 14.07.2010 - 13:20) |
мне кажется, лучше сделать отдельную таблицу для самых свежих новостей, соответствующих каждому критерию |
Раз 7 дней и 4 раздела, то будет там только 28 строк. Как только появилась новость, то только обновляем (!) одну строку в этой таблице. И еще новость записываем в общую таблицу новостей. Тогда запрос на свежайшие новости будет простейшим, будет возвращать только 28 строк (т.е. всю таблицу!!!), а это почти нулевая нагрузка на БД.
Спустя 30 минут, 7 секунд (14.07.2010 - 15:10) Basili4 написал(а):
а я не так понял
Спустя 2 дня, 2 часа, 2 минуты, 56 секунд (16.07.2010 - 17:13) [MI_nor] написал(а):
Госсподи, сколько-ж понаписали пока меня не было =)
sergeiss, идея ваша мне очень понравилась, но только есть 1 ньюанс. Новости на главной отображаются не самые свежие, а самые популярные. А при каждом голосе сравнивать и обновлять таблицу как-то не удобно ) Скажите, а для этого случая как-то адаптироваться можно?
З.Ы проблема в этом отпала, решил не делать себе лишний геморой =) Сделаю как вы предложили
З.Ы.Ы возник еще вопрос. Если у меня новости должны меняться в зависимости от региона и масштаба(их выбирает юзер), то нормально ли что для каждого региона придется создавать таблицу? Ведь их тогда будет ох как много...
sergeiss, идея ваша мне очень понравилась, но только есть 1 ньюанс. Новости на главной отображаются не самые свежие, а самые популярные. А при каждом голосе сравнивать и обновлять таблицу как-то не удобно ) Скажите, а для этого случая как-то адаптироваться можно?
З.Ы проблема в этом отпала, решил не делать себе лишний геморой =) Сделаю как вы предложили
З.Ы.Ы возник еще вопрос. Если у меня новости должны меняться в зависимости от региона и масштаба(их выбирает юзер), то нормально ли что для каждого региона придется создавать таблицу? Ведь их тогда будет ох как много...
Спустя 2 дня, 15 часов, 2 минуты, 54 секунды (19.07.2010 - 08:15) sergeiss написал(а):
Цитата ([MI_nor) |
,16.07.2010 - 18:13]Госсподи, сколько-ж понаписали пока меня не было =) |
Это разве много Вот если бы страниц 5 "наспорили бы" - это было бы "много"
Цитата ([MI_nor) |
,16.07.2010 - 18:13]З.Ы.Ы возник еще вопрос. Если у меня новости должны меняться в зависимости от региона и масштаба(их выбирает юзер), то нормально ли что для каждого региона придется создавать таблицу? Ведь их тогда будет ох как много... |
А зачем разные таблицы? Сделай в этой же таблице отдельное поле - индекс региона. И выбирай по нему. Всё равно регионов не так и много 28 умножить на их количество - это очень маленькая табличка. А контролировать ее будет также просто.