kostroma
Новичок
мультиселекты в базе данных
Привет!
Есть некий параметр который предполагает возможность мультивыбора (обычный мультиселект в веб-интерфейсе).
Этот параметр хочется отображать в таблице базы данных в рамках одного поля.
Есть идея использовать биты как индикаторы было выбрано то или иное значение в мультиселекте или нет. Но эта идея упирается
в слишком ограниченное число бит которые можно использовать.
>>>>
Поясняю:
пусть у мультиселекта есть 8 значений
h g f e d c b a
Каждое значение соот-ет биту в 1 байтовом числе:
номера битов
8 7 6 5 4 3 2 1
Тип поля в базе данных - однобайтовый INT
Если пользователь выбрал h, b, a
то получаем значение
8 X X X X X 2 1 = 130 в десятичной системе или 82 в шестнадцатиричной
соот-но это значение и заносится в значения поля таблицы в базе данных
Но мультиселекты легко могут содержать по 100, 200, 300, 1000 значений.
Понятно что с такими числами нет возможности работать.
>>>>
Есть ли другие схемы решения подобной задачи: запихать значения мультиселекта в одно поле?
Привет!
Есть некий параметр который предполагает возможность мультивыбора (обычный мультиселект в веб-интерфейсе).
Этот параметр хочется отображать в таблице базы данных в рамках одного поля.
Есть идея использовать биты как индикаторы было выбрано то или иное значение в мультиселекте или нет. Но эта идея упирается
в слишком ограниченное число бит которые можно использовать.
>>>>
Поясняю:
пусть у мультиселекта есть 8 значений
h g f e d c b a
Каждое значение соот-ет биту в 1 байтовом числе:
номера битов
8 7 6 5 4 3 2 1
Тип поля в базе данных - однобайтовый INT
Если пользователь выбрал h, b, a
то получаем значение
8 X X X X X 2 1 = 130 в десятичной системе или 82 в шестнадцатиричной
соот-но это значение и заносится в значения поля таблицы в базе данных
Но мультиселекты легко могут содержать по 100, 200, 300, 1000 значений.
Понятно что с такими числами нет возможности работать.
>>>>
Есть ли другие схемы решения подобной задачи: запихать значения мультиселекта в одно поле?
