2009-07-22 5 views
0

В этом случае я имею в виду конкретно параметры Google Friend Connect - Social Bar. Пользователи могут выбирать из различных параметров при настройке их SocialBar т.е.Как сохранить пользовательские параметры в базе данных?

skin['BORDER_COLOR'] = '#cccccc'; 
skin['ENDCAP_BG_COLOR'] = '#e0ecff'; 
skin['ENDCAP_TEXT_COLOR'] = '#333333'; 
skin['ENDCAP_LINK_COLOR'] = '#0000cc'; 
skin['ALTERNATE_BG_COLOR'] = '#ffffff'; 
skin['CONTENT_BG_COLOR'] = '#ffffff'; 

Я хочу, чтобы хранить эти пользовательские значения в таблице MySQL, но я не хочу, чтобы создать поле для каждого возможного параметра.

Я думал хранить его в более строки типа JSON в одном поле:

{"BORDER_COLOR":'#cccccc',"ENDCAP_BG_COLOR",'#e0ecff'} 

Или как .ini массив типа файла. Я орехи?

Причина в том, что я имею дело с различным количеством параметров, и в будущем может быть больше, что означало бы добавление другого поля в существующую таблицу.

ответ

2

Он работает, и было бы очень легко разобрать данные в классе.

Однако было бы очень неприятно делать обновления в базе данных, если вам нужно добавить новый параметр для всех пользователей, или если вам нужно изменить/исправить определенный параметр, так как вам нужно будет написать приложение , или использовать функции манипуляции строкой.

Одна простая структура альтернативного DB вы можете использовать:

TABLE PREFERENCES 
(
USER int not null 
KEY varchar(20) 
VALUE varchar(20) 
) 

Так одна запись woud быть:

USER=1234 
KEY='ALTERNATE_BG_COLOR' 
VALUE='#ffffff' 
+0

Да, я собирался предложить это, так я бы это сделать. – codemonkey