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 :: Проектирование БД и взаимодействие с ней.
* где зеленое - это уникальные значения и повторяться они не могут, попарно.
Как я понимаю, при попытке записать данные, мне придется сделать следующее:
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 - 22:07:13
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
А в чём задача-то исходная?
----- PostgreSQL DBA
LEONeso
Отправлено: 08 Января, 2012 - 23:20:38
Посетитель
Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010 Откуда: Россия, Москва
Помог: 1 раз(а)
Мелкий, хочу сделать поиск по индексам ключевых слов, при этом, каждое слово это отдельная запись с уникальным айдишником и привязками к той или иной таблице.
Категории имеют базовые ключевые слова, их немного.
Подкатегории имеют больше ключевых слов.
Публикации имеют много ключевых слов т.к. их больше.
Если пользователь поленился и написал в поиске типа "шар", то категории такое не будут иметь, а вот подкатегории вполне возможно, что будут иметь данные слова как и публикации. Пользователь также может уточнять свой запрос к примеру "красный шар" или же "красный шар, синий шар" где запятая разделяет запрос, но суть не в этом - это пример. Сложность в реализации, пугает огромное количество запросов т.к. я не опытен, я в основном пишу на низкоуровневом php... исходя из своих или найденных знаний... боюсь что сделаю for/foreach цикл и будут обрабатывать массив, который в свою очередь будет создаваться через explode, что так же не лучший вариант... хотя у меня выбора то и нет.
Хочется сделать шустрый поисковый скрипт по данным критериям.
----- Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.