![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: нет Всего: 13 |
Есть три таблицы:
_____________ news_categories | ---------------------- id | title | order | ---------------------- по полю order(int) категории сортируются. _______________________________ news_feeds | -------------------------------------------------- id | category_id | title | feed_url | open | -------------------------------------------------- _________________________________ news | ---------------------------------------------------- id | feed_id | category_id | title | url | date | ---------------------------------------------------- Вот примерная структура таблиц. Плюс к этому нужго еще одно полу в таблице news - дата. Назовем пока `open_date`. Объясню дальше. Нужно выбрать пять новостей из каждой категории, у которых у feed'а open=1 и отсортировать их по дате. Если `open_date` не NULL и не менее текущей даты, то эта новость должна присутствовать в результате выборки. Категорий всего 50. Новостей - таблица каждый день пополняется на 10 000 записей. + в таблицах дополнительные текстовые поля. В цикле перебирать категории и делать запросы, кажется, не лучшее решение. Вариантов у меня 1: создать дополнительную таблицу `news_main`(`news_id`, `open_date`) где будут все требуемые новости. Записей постоянно будет 250. Перестраиваться таблица будет раз в 10 минут (периодичность подгружения новостей). Плюс изредка незначительные изменения при действиях в админке. На выборку затраты будут минимальны, на изменение тоже высокой нагрузки не будет. Каким путем лучше пойти? Интересует меня первый вариант. Как выбрать по пять новостей из каждой категории с этими условиями? (открыт ли фид, `open_date`, сортировка по `date`)? Это сообщение отредактировал(а) enoff - 15.12.2010, 13:01 |
|||
|
||||
| enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: нет Всего: 13 |
и новое условие. В таблице `news_feeds` поле `region`.
Плюс в вышесказанному, нужно выбрать не по пять из категории, а по пять из одной категории для каждого региона. Вобщем, мне малореальным представляется это сделать без доп. таблицы, сделаю еще одну. Но за подсказки других вариантов, или как можно сделать без новой таблицы, буду рад |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |