[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: LIKE vs Дополнительных полей в таблице
RAMM13
Возник след. вопрос: в скрипте с анкетами есть возможность выбрать музык.предпочтения. Проще говоря допустим их будет 5: рок, джаз, попса, классика и рэп. Напротив каждого можно поставитб галочку ("1") или убрать ее ("0"). Т.е. "1" - отдаешь предпочтение, "0" - по барабану. И выходит 5 цифр 0/1 фикс длины. Например, 00100 - предпочитает попсу, или 01110 - джаз,попсу и классику. В проге есть поиск по этим предпочтениям... Реализовано так: хочу найти тех, кто слушает допустим рок и рэп. ставлю галочки напротив. выходит 10001.
И вот тут вопрос хранить эти 1/0 в отдельных полях таблицы или создать одно поле индекс и писать поиск через LIKE "1 _ _ _ 1". Насколько будет быстр данный поиск, "%" не используются, фиксир.величина по идее должна облегчать задачу.
Кароч кто с подобным сталкивался?



Спустя 5 минут, 27 секунд (3.09.2009 - 12:47) Gabriel написал(а):
а че если писать поиск через лайк хранить биты буш в воздухе?

Спустя 8 минут, 46 секунд (3.09.2009 - 12:56) sergeiss написал(а):
Я бы сделал отдельные логические поля для каждого предпочтения. Потом проще будет делать выборку, безо всяких ухищрений, просто и понятно.

Спустя 7 минут, 50 секунд (3.09.2009 - 13:04) RAMM13 написал(а):
Цитата (Gabriel @ 3.09.2009 - 09:47)
а че если писать поиск через лайк хранить биты буш в воздухе?

дык одно поле-индекс и будет хранить эти собрания 0 и 1

Спустя 3 минуты, 25 секунд (3.09.2009 - 13:07) RAMM13 написал(а):
Цитата (sergeiss @ 3.09.2009 - 09:56)
Я бы сделал отдельные логические поля для каждого предпочтения. Потом проще будет делать выборку, безо всяких ухищрений, просто и понятно.

с выборкой нет проблем. хочешь рок - по одному полю запрос LIKE '1_ _ _ _'. "_" это же одно знакоместо. если я допустим запрашиваю LIKE '_ _ _ 11', то еханизм SQL не отбрасывает сразу 3 первых символа в индексе, как прошедших проверку с последующей проверкой уже 4ого и 5ого?

Спустя 2 минуты, 21 секунда (3.09.2009 - 13:10) waldicom написал(а):
Я бы сделал с тремя таблицами...

Спустя 4 минуты, 59 секунд (3.09.2009 - 13:15) RAMM13 написал(а):
Цитата (waldicom @ 3.09.2009 - 10:10)
Я бы сделал с тремя таблицами...

а три то зачем? задача такая. предпочтений может быть и 20 и 30 штук. жанров в музыке много. или делать таблицу в 30 полей и каждое поле индекс или таблу с 1 полем CHAR(30) с индексом

Спустя 56 минут, 14 секунд (3.09.2009 - 14:11) waldicom написал(а):
Одн таблица - пользователи (user), другая - жанры(genre), в третьей два поля: userID, genreID
И тогда все равно ,сколько жанров или предпочтений
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.