|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.04.2011, 14:43 | #11 | |||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
Цитата:
Тут ошибка в логике. Вы работаете только с БД. Так никто не делает. Вам же сказали: при инициализации вытаскиваете массив настроек в сессию и работаете с ней без обращения к БД - выгода в сотни раз больше, чем от того способа, который вы предложили. |
|||
22.04.2011, 23:53 | #12 | |
Пользователь
Регистрация: 17.04.2011
Сообщений: 11
|
Вопрос был:
А по сему подскажите пожалуйста как построить запрос к базе в случае хранения ассоциативного массива в сериализированной строке? Цитата:
Учту пожелания, с сессией действительно работал немного, поэтому и развил логику по работе с БД. |
|
22.04.2011, 23:54 | #13 | |
Пользователь
Регистрация: 17.04.2011
Сообщений: 11
|
Вопрос был:
А по сему подскажите пожалуйста как построить запрос к базе в случае хранения ассоциативного массива в сериализированной строке? Цитата:
Учту пожелания, с сессией действительно работал немного, поэтому и развил логику по работе с БД. |
|
23.04.2011, 00:09 | #14 | ||
Пользователь
Регистрация: 17.04.2011
Сообщений: 11
|
Цитата:
Когда же необходимо вывести список тем контактов, проверяются настройки каждого контакта(пользователя). При храненнии в сериализованной строке приходилось бы настройки каждого контакта стягивать отдельным запросом и только потом делать зарос на темы. В даном случае помогло бы хранение 20-ти параметров в разных колонках. Но мне эта идея не понравилась. Цитата:
|
||
23.04.2011, 08:32 | #15 | ||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
|
||
03.05.2011, 14:12 | #16 | |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
Не всё так плохо, как могло бы
Самому пришлось немного с этим работать (правда причина была не в желании уменьшить базу, а в совместимости с бинарной-хип базой).
Для БД лучше использовать битвайз-функции самого Mysql, а не посылать лишние селекты/апдейты, как тут Код:
можно ставить как-то сразу вот так (не проверял, но должно вроде работать) Код:
Код:
Вот это вот: Цитата:
Код:
Кроме того, становится достаточно просто сделать выборку на совпадение 2-х и более опций. (через битвайз-ор и энд, т.е. 1 и 9 опции - это 513 и т.д.) Если необходимо сделать проверку на выключенные и включённые опции одновременно в 1 условии можно использовать маску. и вообще, вместо pow() советую использовать предопределённый массив со степенями, дешевше выйдет. |
|
10.11.2013, 21:04 | #17 |
Пользователь
Регистрация: 17.04.2011
Сообщений: 11
|
На днях ковырял фреймворк Symfony2 и обнаружил, что в его компоненте ACL как раз таки используется число (маска) для хранения прав пользователя.
https://github.com/symfony/symfony/b...askBuilder.php Не совсем тоже самое, что описано выше, но идея схожа. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранение БД в одном файле | D_E_N | БД в Delphi | 3 | 18.07.2009 14:01 |
изменение нескольких переменных в одном методе. | goog | Общие вопросы по Java, Java SE, Kotlin | 5 | 01.03.2009 20:46 |
Прибавление логических функций | Slavik | Microsoft Office Excel | 19 | 26.01.2009 23:39 |
Использование логических функций | Клубничка | Microsoft Office Excel | 52 | 15.01.2009 15:01 |
Свой тип данных в Delphi - сверх длинные числа - хранение в переменных размером до 1 MB | KLaiM | Общие вопросы Delphi | 9 | 16.06.2007 09:13 |