|
|
|
| Делаю сайт каталога организаций, каждая организация может соответствовать до 20 различным направлениям деятельности (подкатегориям). После регистрации, выбранные подкатегории записываются в столбец category в строку вида: " 2 4 11 34 56 67 87 74 140 ". При выводе содержимого соответствующей категории, запрашиваются организации соответствующие входящим подкатегориям, т.е. поиск по столбцу category. Сейчас поиск осуществляется с помощью LIKE к примеру:
SELECT name FROM org WHERE category LIKE '% 4 %' OR LIKE '% 23 %' OR LIKE '% 34 %' OR LIKE '% 67 %'
|
В тестовом режиме количество записей небольшое, поэтому проблем нет. Но приналичии пары-тройки тысяч записей будет ли целесообразнее перейти на полнотекстовый поиск по индексу FULLTEXT? | |
|
|
|
|
|
|
|
для: guki
(18.09.2006 в 09:07)
| | Целесообразнее вместо поля category использовать дополнительную таблицу category_org, которая будет устанавливать соответствие между таблицей org и категориями category_org
id id_org id_category
1 1 4
2 1 23
3 1 34
4 1 67
5 2 3
6 2 12
7 2 67
|
| |
|
|
|
|
|
|
|
для: cheops
(18.09.2006 в 11:02)
| | Длина строки в поле category уменьшится, но количество строк в предполагаемой таблице category_org увеличится. Будет ли время выборки этим способом меньше? | |
|
|
|
|
|
|
|
для: guki
(18.09.2006 в 15:44)
| | Уменьшится не только длина строки category - она вообще исчезнет из таблицы, вместо неё будут использваться целочисленные значения ключей, и вот это скорость увеличит значительно, числа обрабатываются на порядок быстрее строк. | |
|
|
|