![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| ikillbill |
|
||||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Есть следующая таблица с людьми.
К каждому человеку в профиль нужно подцепить кучу чекбоксов
Как все эти чекбоксы записать в базу? Вариант с добавочными полями к основной таблице отпадает, полей будет много. |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
какая разница сколько полей? данные есть данные. если поля предусматривают однозначный вариант ответа и их будет фиксированное количества, то хоть сто штук, но они должны быть в этой же таблице
|
|||
|
||||
| ikillbill |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Я тоже хочу чтобы все это лежало в одной таблице. А можно это как-нибудь все засунуть в одно поле? Например записывая данные в виде 0100010011110000 или суммой (1+2+4+8+16), но нужен какой-нибудь вариант не препятствующим делать выборки, например "показать всех курящих" |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
делай вторую таблицу
id - где id это ид юзера answer - ответ потом объединяй запрос -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| ikillbill |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
||||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
americanets, если на поле один вариант ответа, то можно и одной таблицей обойтись, зачем множить?
тоже можно, но для этого придётся написать специальную функцию-обработчик, через которую каждый раз придётся пропускать данные поля. тоже излишне, когда можно всё вытащить одним запросом |
|||
|
||||
| ikillbill |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
А если все-таки данные хранить как 010011 и выборки делать так
для показа пьющих, без прав Как это на базе скажется? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
как бесмысленное торможение. к тому, здесь простенькая выборка, а вдруг потребуется сделать мощную статистику с объединением ещё чего-нибудь? тогда вообще зашьётся
а чем не устраивает большое количество полей? |
|||
|
||||
| ikillbill |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
||||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
bars80080, не находишь странным выбор одного из них?
те, если в браке значит не пью и не курю, или наоборот. Есть дети -> значит занимаюсь спортом и сексом. Так ?
Добавлено через 1 минуту и 14 секунд а еще есть такая штука "нормализация" вот это какраз она -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
технически можно засунуть в одно поле все данные, строкой или суммой, при этом по каждому параметру величины будут независимы. но в данном случае это всё будет мешать быстроте общения с БД и усложнять работу с ней почему? откуда такие данные? |
|||
|
||||
| ikillbill |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
База получится черезчур "широкой". Ну, если не найду способа запихнуть все в одно поле придется расширять ее. Насчет способа с like '_1_0__' - если от базы ничего более крупного не потребуется, то можно ли им пользоваться, или подобные "побуквенные" запросы медленно выполняются? Если да, то на сколько медленно? |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
если честно то такое хранение полная ерунда, если уж очень хочется пихать много ответов в одно полу смотри сериализацию -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| ikillbill |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 35 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
||||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
нет, я имею ввиду http://ru2.php.net/manual/de/function.serialize.php
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |