Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проектирование БД и взаимодействие с ней.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: требуется совет, подсказка
LEONeso
Отправлено: 08 Января, 2012 - 21:47:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Здравствуйте, долго ничего не писал и друг решил написать скрипт, верней переписать.

Время дало о себе знать сразу... было много ошибок и т.д., но самое сложно оказалось связь с базой данных.

Для реализации поиска по индексам, я решил хранить данные в разных таблицах.

Пример таблиц:
1. category - id, name
2. inner_category - id, id_category, name
3. public_info - id, id_inner_category, title

4. keywords - id, key
5. bind_category - id, id_category, id_key
6. bind_inner_category - id, id_inner_category, id_key
7. bind_public_info - id, id_public_info, id_key

* где зеленое - это уникальные значения и повторяться они не могут, попарно.

Как я понимаю, при попытке записать данные, мне придется сделать следующее:
1. Отослать запрос для проверки существования Категории, Подкатегории, Публикации
1.1 Если отсутствую записи о Категории или Подкатегории, то:
1.1.2 Записываем данные о Категории или Подкатегории (ну или то и другое)
1.2 Проверяем Существуют ли данные о связи Публикации и ключевых слов, если да:
1.2.1 Сверяем действительное с явным, если обнаружены неточности/различия:
1.2.2 Удаляем ключевые слова, которых нет в отосланном массиве, если есть найденные то:
1.2.3 Создаем записи, ключевые слова и связи.

2. Реализация поиска по ключам, отсылаем запрос в таблицу с ключевыми словами.
2.1 При нахождении слов (по нарастающей), отсылаем их id в следующий запрос:
2.1.1 В таблице связей ключевых слов с публикацией простым запросом находим совпадения пары, если такие найдены то
2.1.1.1 Собираем id публикаций из связей и отсылаем запрос в таблицу публикаций... выводим результат.

В целом вроде бы логично всё, но ЭТОЖ СКОЛЬКО ЗАПРОСОВ? У меня мозг потух когда я осознал всю суть... теперь я не знаю как верно реализовать данную задачу.

Возможно у кого-то есть опыт в реализации аналоговых задач, моя логика явно положит скрипт одним нажатием на кнопку, ведь ключевых слов может быть много и каждый создать запрос на проверку и запись/удаление. Что посоветуете?
--
Заранее спасибо.

(Отредактировано автором: 08 Января, 2012 - 21:51:10)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Мелкий Супермодератор
Отправлено: 08 Января, 2012 - 22:07:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А в чём задача-то исходная?


-----
PostgreSQL DBA
 
 Top
LEONeso
Отправлено: 08 Января, 2012 - 23:20:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Мелкий, хочу сделать поиск по индексам ключевых слов, при этом, каждое слово это отдельная запись с уникальным айдишником и привязками к той или иной таблице.

Категории имеют базовые ключевые слова, их немного.
Подкатегории имеют больше ключевых слов.
Публикации имеют много ключевых слов т.к. их больше.

Если пользователь поленился и написал в поиске типа "шар", то категории такое не будут иметь, а вот подкатегории вполне возможно, что будут иметь данные слова как и публикации. Пользователь также может уточнять свой запрос к примеру "красный шар" или же "красный шар, синий шар" где запятая разделяет запрос, но суть не в этом - это пример. Сложность в реализации, пугает огромное количество запросов т.к. я не опытен, я в основном пишу на низкоуровневом php... исходя из своих или найденных знаний... боюсь что сделаю for/foreach цикл и будут обрабатывать массив, который в свою очередь будет создаваться через explode, что так же не лучший вариант... хотя у меня выбора то и нет.

Хочется сделать шустрый поисковый скрипт по данным критериям.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB