Поиск в модулях сайта

Savio

Новичок
Поиск в модулях сайта

Нужно написать модуль новостей для сайта.
Новости будут разных категорий (news,soft,video,music,game и т.д...)
будет основной класс, который будет тянуть с БД дату создания,логин юзера который запостил новую тему, количество просмотров, количество коментов и т.д...
потом в зависимости от типа категории новости будет подгружаться сам контент
вот тут я подумал, а как же я организую поиск на сайте?
придеться прочесывать таблицы news_video,news_soft,news_game и т.д... на нужные фразы поиска.
плюс когда нужно добавить еще какуюту новую категорию, нада дописывать сам механизм поиска....

идея следующая:
при создание новой темы новости сохранять в БД и паралельно генерить html страничку с контентом
преимущества которые я вижу:
+при загрузке страницы нет необходимости обращаться к БД для генерирования контента, он уже будет готов
тоесть уменьшается количество запросов к БД
+ поиск упрощаеться, ищем в готовых html

как думаете, заблуждаюсь сильно? :) или же нужно каждый раз делать запрос к базе?
 

HraKK

Мудак
Команда форума
и паралельно генерить html страничку с контентом
Это называется кешированием. Но вы забываете что изменя один блок, вы должны будете все страницы перегенирорать на которых он присутсвует.
+ поиск упрощаеться, ищем в готовых html
Не упрощается, а усложняется.

Попробуйсте систему типа паук.
 

Sokil.Dmytro

Новичок
а структура таблиц идентична? если да то может просто добавить поле категории новости и искать в одной таблице.
 

Savio

Новичок
неа, структура как раз разная.
наверное мое предположение всетаки не есть рациональным
 

FlexIDK

Новичок
а может не создавать такие таблицы "news_video,news_soft,news_game и т.д... "
а просто новости присвоить номер темы?!...

а проновость и хранение! сохраняй саму новость а не всю страницу, и потом просто вставляй ее!
 

Bakti9rov

!*|=?
Если ищется фуллтекстом, то результаты поиска не лишним будет сохранять в базе данных или в куки. Чтобы не было повторных и просто лишних "прочесываний".

Допустим, нашлось соответствие по фразе - новости 12, 45, 233, 896. Для данной фразы результат поиска сохраняется в куки (как csv строка) либо в базу (в сериализованном виде). При повторном обращении база уже не будет нагружаться поиском из 18933-х новостей, а просто вытащит результат из предыдущего поиска.
 

Zetruger

ivan.chistyakov.name
неа, структура как раз разная.
насколько она разная

ябы определил некие основные поля свойственные для всех категорий

и поля особые которые можно хранить в одном поле таблицы
минус невозможность произовдить операции надо особыми полями на уровне SQL
 

Savio

Новичок
ок. вот краткая структура
PHP:
---------table data----------
id #внешний ключ
caption # Какой бы категории небыла новость у нее присутствует название
data_create # дата создания
type # категория новости
id_data_type # id внешнего ключа таблицы конкретной категории
id_user_create # id юзера который создал
и так далее
теперь что б стало более мение ясно приведу только две таблицы, скажем data_video, data_game

data_video содержит -
- альтернативное название
- жанр
- качество
- режисер
- главный роли
и т.д....
data_game содержит -
- жанр игры
- наличие кряка
- платформа(Win,linux,mac)
и т.д...
 

Sokil.Dmytro

Новичок
может тогда имеет смысл доп поле в форме поиска сделать - категорию поиска. Допустим если ты ищешь игру с машинами то фильм про машини тебе нафик не нада. тогда будет цеплять четко одну таблицу
 
Сверху