Мелкий, хочу сделать поиск по индексам ключевых слов, при этом, каждое слово это отдельная запись с уникальным айдишником и привязками к той или иной таблице.
Категории имеют базовые ключевые слова, их немного.
Подкатегории имеют больше ключевых слов.
Публикации имеют много ключевых слов т.к. их больше.
Если пользователь поленился и написал в поиске типа "шар", то категории такое не будут иметь, а вот подкатегории вполне возможно, что будут иметь данные слова как и публикации. Пользователь также может уточнять свой запрос к примеру "красный шар" или же "красный шар, синий шар" где запятая разделяет запрос, но суть не в этом - это пример. Сложность в реализации, пугает огромное количество запросов т.к. я не опытен, я в основном пишу на низкоуровневом php... исходя из своих или найденных знаний... боюсь что сделаю for/foreach цикл и будут обрабатывать массив, который в свою очередь будет создаваться через explode, что так же не лучший вариант... хотя у меня выбора то и нет.
Хочется сделать шустрый поисковый скрипт по данным критериям.
* где зеленое - это уникальные значения и повторяться они не могут, попарно.
Как я понимаю, при попытке записать данные, мне придется сделать следующее:
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 публикаций из связей и отсылаем запрос в таблицу публикаций... выводим результат.
В целом вроде бы логично всё, но ЭТОЖ СКОЛЬКО ЗАПРОСОВ? У меня мозг потух когда я осознал всю суть... теперь я не знаю как верно реализовать данную задачу.
Возможно у кого-то есть опыт в реализации аналоговых задач, моя логика явно положит скрипт одним нажатием на кнопку, ведь ключевых слов может быть много и каждый создать запрос на проверку и запись/удаление. Что посоветуете?
--
Заранее спасибо.
Здравствуйте, сижу ломаю голову и странно ,что не могу найти ответ в гугле... возможно не верно формулирую запрос/вопрос.
Имею таблицу, 4 значения.
Пример:
1. id
2. фамилия
3. имя
4. отчество
Необходимо завязать значения 2 3 4 и сделать эту связь уникальной, чтобы Ф.И.О. не повторялись вообще, только уникальные связи... как я понимаю, если задать им index UNIQUE, то при совпадении Имени, Фамилии или Отчества, выдаст ошибку, не зависимо от того, что (к примеру)Имя уникальное?
Самогонщик, т.е. не стоит бояться плодить записи в базе данных... стоит делать так: 1. 'id', 'src' таблица с данными изображения 2. 'id', 'key' таблица с ключевыми словами, где "запись = одному слову" 3. 'id_src', 'id_key' связка данных двух таблиц
2.1 - explode ... затормозит работу скрипта и выдаст задержку в поисковой выдаче? верно я понимаю?
koras, в данный момент работает с одной таблицей, где привязаны ключевые слова к определенному изображению... но от сюда и ограниченный функционал ,что не есть хорошо... связывает руки для дальнейших целей.