Сенсей
Новичок
Списки данных привязать к пользователям. Организация в базе.
Есть таблица пользователей. Пользователям нужно дать возможность выбирать из списка несколько вариантов.
Список - это например список интересов, или например цель нахождения на сайте.
Выводим список с чекбоксами... юзер отмечает чекбоксы - и мы сохраняем данные в базе.
Вот тут вопрос - как хранить эти данные? По ним потом будет осуществляться поиск пользователей.
Создавать отдельное поле для каждого чекбокса в таблице юзеров слишком громоздко. Особенно если список значений может измениться.
Хранить значения чекбоксов в виде например 1,0,0,0,1,1 в одном поле - не кошерно вроде как...
Есть идея создать таблицу например:
А данные хранить в таком виде:
Значения потом выберать из соответствующих массивов в соответствии с data_type и data_value
Например при выборке получаем:
И уже выбираем что выводить из соответствующих массивов.
Я на правильном пути? Что можете посоветовать?
Есть таблица пользователей. Пользователям нужно дать возможность выбирать из списка несколько вариантов.
Список - это например список интересов, или например цель нахождения на сайте.
Выводим список с чекбоксами... юзер отмечает чекбоксы - и мы сохраняем данные в базе.
Вот тут вопрос - как хранить эти данные? По ним потом будет осуществляться поиск пользователей.
Создавать отдельное поле для каждого чекбокса в таблице юзеров слишком громоздко. Особенно если список значений может измениться.
Хранить значения чекбоксов в виде например 1,0,0,0,1,1 в одном поле - не кошерно вроде как...
Есть идея создать таблицу например:
PHP:
CREATE TABLE `users_extended_data` (
`data_id` int(11) NOT NULL auto_increment,
`user_id` int(11) default NULL,
`data_type` varchar(11) default NULL,
`data_value` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`data_id`)
)
PHP:
data_id | user_id | data_type | data_value
1 4 interests 0
2 4 interests 1
3 4 interests 4
4 4 search_for 0
5 4 search_for 2
Например при выборке получаем:
PHP:
$data_type = 'interests';
$data_value[1] = 0;
$data_value[2] = 1;
$data_value[3] = 4;
PHP:
$interests = array(
0 => 'Музыка',
1 => 'Фильмы',
2 => 'Спорт',
3 => 'Интернет',
4 => 'Танцы'
);
$user_search_for = array(
0 => 'Любовь',
1 => 'Новых друзей',
2 => 'Общения',
3 => 'Секс',
4 => 'Просто мне здесь нравится'
);