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
Отправлено: 15 Ноября, 2011 - 18:03:14
Post Id



Посетитель


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


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




Привет всем, сразу к наболевшему.

Как я понимаю реализация поиска по картинкам дело не сложное т.к. это всё же поиск слов... ключевых слов. Проблема в организации базы данных.

Как я представляю/понимаю это так:
1. Таблица "images"
1.1. id
1.2. idkey (перечисление через запятую?)
1.3. src

2. Таблица "keywords"
2.1. id
2.2. keywords
2.3. count (+1, если слово дублируется... для построения облака тегов)


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Самогонщик
Отправлено: 15 Ноября, 2011 - 18:16:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




даю варианты:
1. добавить ещё одну таблицу чтобы стыковать нормально первую и вторую таблицу.
2. не добавлять ещё таблицу, а во второй хранить ид из первой и слово. Количество можно на лету посчитать.

В любому случае 1.2. это ад.
 
 Top
De-Luxis
Отправлено: 15 Ноября, 2011 - 18:39:50
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Янв. 2009  


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




Отдельно таблица с картинками.
Отдельно таблица с тегами.
Отдельно таблица с id тегов и картинок.

Тблица 1:
id
src

Таблица 2
id
key

Таблица 3
id_image
id_key
 
 Top
koras
Отправлено: 15 Ноября, 2011 - 18:55:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009  


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




Что за извращение?
А одной таблицей слабо сделать?
Не усложняйте себе жизнь, а делайте сразу правильно.
Почитайте о полнотекстовом поиске и с чем его едят.

Даже ссылку подыскал http://phpclub[dot]ru/mysql/doc/fulltext-search[dot]html

(Отредактировано автором: 15 Ноября, 2011 - 19:00:53)

 
 Top
Самогонщик
Отправлено: 15 Ноября, 2011 - 19:39:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




koras пишет:
А одной таблицей слабо сделать?
Можно и одной, но я бы для повышения своего ЧСВ оправдывая заделом на будущее (быстрый поиск тегов для подсказки пользователю) остановился бы на двух или трёх таблицах. Главное чтобы 1.2. не было.
(Добавление)
Хотя о чём это я... зачем хранить теги списком через запятую а потом мучительно их искать, удалять, вставлять и т.д.?
 
 Top
LEONeso
Отправлено: 15 Ноября, 2011 - 20:09:26
Post Id



Посетитель


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


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




Самогонщик, т.е. не стоит бояться плодить записи в базе данных... стоит делать так:
1. 'id', 'src' таблица с данными изображения
2. 'id', 'key' таблица с ключевыми словами, где "запись = одному слову"
3. 'id_src', 'id_key' связка данных двух таблиц

2.1 - explode ... затормозит работу скрипта и выдаст задержку в поисковой выдаче? верно я понимаю?

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


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Самогонщик
Отправлено: 15 Ноября, 2011 - 20:17:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




Поиск по индексу производится за логарифмическое время, быстрее уже почти некуда.

Можно таблицу два выкинуть и ссылаться из третей сразу на первую, но тут теги будут повторяться, зато запросы проще Улыбка

Вообще, выдумай типичные запросы, бахни генератор записей (100000 картинок и 1000 разных тегов по 10 связок в среднем), погоняй запросы для разных реализаций и выложи результаты, думаю всем будет интересно.

Или выбери один из вариантов и делай как делается, если что конвертнёшь в другой Улыбка
 
 Top
LEONeso
Отправлено: 15 Ноября, 2011 - 20:44:30
Post Id



Посетитель


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


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




Самогонщик, мне подсказывают об уникальных индексах... что исключит дубликаты из ключевых слов: #1062 - Duplicate entry

Вот эти нюансы, о которых я не знал, функционал mysql. Придется изучать более подробно.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 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