Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранение набора чекбоксов в одном поле + нестрогий поиск по ним / 4 сообщений из 4, страница 1 из 1
19.02.2015, 22:17:42
    #38884484
faecker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение набора чекбоксов в одном поле + нестрогий поиск по ним
Просьба к знатокам, как лучше организовать хранение набора чекбоксов в одном поле mysql с возможностью нестрого (когда есть хотя бы одно совпадение, а не комбинация) поиска по ним.
Форма поиска состоит из нескольких форм, которые содержат в общей сложности 63 чекбокса, создавать отдельное поле для каждого в одной таблице не реально. Разносить по дополнительным таблицам - в результате получится поиск из запроса к шести таблицам.

Что применить:
1. хранить набор в типе поля SET, возможно ли организовать оптимальный перебор и поиск по такому типу данных?
2. хранить данные в поле int в битовых комбинациях, при поиске искать совпадения комбинаций
3. какие еще есть варианты?

Всем заранее спасибо.
...
Рейтинг: 0 / 0
20.02.2015, 09:16:29
    #38884651
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение набора чекбоксов в одном поле + нестрогий поиск по ним
Можно хранить как SET, BIT или INT. Хранение при этом совершенно одинаковое, различие - только в дефолтном выводе, необходимости явного преобразования и особенностях преобразования неявного. Поиск "хотя бы одного" - вульгарным OR.
...
Рейтинг: 0 / 0
20.02.2015, 10:33:16
    #38884728
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение набора чекбоксов в одном поле + нестрогий поиск по ним
я так понимаю вопрос касается применимости индексов для такого поля!!!

храним мы байт.

поиск по маске - where value & 0x04

я могу только сказать по этому вопросу одно.

один человек спросил и сам себе ответил.

How to kill mysql performance? - use bitwise operations!

на это только стоит делать ставку, если это как дополнительный критерий.
ну скажем выбираем товары по критериям - это доля процента от общего количества, и тутже выкидываем помеченые битом(ожидаются)..
тоесть когда у тебя есть фильтр товаров
фильтр1, фильтр2, фильтр три, и формат вывода - скрыть без цены, скрыть в ожидании, скрыть в резерве, скрыть повреждённые итд.
тоесть просто найти повреждённые нельзя, или в резервер, но делая поиск по фильтрам, можно дополнительно выкинуть ...вот тут нормаль. храни лучше целым числом, ибо на пхп или подобном языке, не очень кошерно получить из базы строку 0и1 и потом чтото с ней шаманить. пускай целое число будет.

(если ты и создаш в базе битовое поле на 7 бит, база один чорт выделить байт для столбца, просто один вечнонулевой бит никогда тебе не покажет, и будет постоянно отрисовывать его и дорисовывать.
...
Рейтинг: 0 / 0
20.02.2015, 11:35:35
    #38884796
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение набора чекбоксов в одном поле + нестрогий поиск по ним
alex564657498765453How to kill mysql performance? - use bitwise operations!
При поиске пересечения маски и значения по OR никакие индексы тебе не помогут - один хрен фуллскан. Или шопипецный юнион.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранение набора чекбоксов в одном поле + нестрогий поиск по ним / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]