Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как организовать поддержку неограниченного числа категорий?
 
 автор: vbps   (02.08.2011 в 04:44)   письмо автору
 
 

Как организовать поддержку неограниченного числа категорий для записей?
Подскажите или дайте информацию где это можно почитать.

Мне пришло на ум только одно оптимальное решение:
хранить id в строке: ,1,68,12,56,...,1001,
и выбирать с помощью LIKE при запросе определенной категории, так
(pole_gde_ishem like '%,",1001,",%')

Но меня интересует более быстрый способ. Так как записей в базе более 2000, категорий может быть от 4 до 200 может быть в процессе и больше появится.

Выборка (поиск) с помощью FULLTEXT - медленнее чем LIKE.

  Ответить  
 
 автор: cheops   (02.08.2011 в 09:09)   письмо автору
 
   для: vbps   (02.08.2011 в 04:44)
 

Нет строка плохая идея, тем более одним like не обойтись, придется обрабатывать ситуации нахождения числа в начале, конец строки, одного числа - в общем будет очень медленно. Обычно вводят дополнительную третью таблицу - в одном столбце хранят номер записи, в другом - номер категории. Сколько связей - столько и записей в таблице. Внешне это выглядит громоздко и объемно, но на самом деле занимает гораздо меньше места и работает шустрее, чем вариант со строками.

  Ответить  
 
 автор: vbps   (02.08.2011 в 13:49)   письмо автору
 
   для: cheops   (02.08.2011 в 09:09)
 

Пробовал такой подход. Создал таблицу:
id ...
tid - id записи
cid - id категории

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

Сейчас попробую еще раз, может что то упустил.

  Ответить  
 
 автор: Valick   (02.08.2011 в 13:50)   письмо автору
 
   для: vbps   (02.08.2011 в 13:49)
 

индексы есть?

  Ответить  
 
 автор: vbps   (02.08.2011 в 13:52)   письмо автору
 
   для: Valick   (02.08.2011 в 13:50)
 

Конечно, иначе смысл работы с числовыми значениями

  Ответить  
 
 автор: Valick   (02.08.2011 в 14:24)   письмо автору
 
   для: vbps   (02.08.2011 в 13:52)
 

покажите таблицы и запросы

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования