如何在数据库中存储用户自定义参数?

时间:2009-07-22 13:25:40

标签: database google-friend-connect

在这种情况下,我指的是Google朋友群 - 社交栏参数。用户在设置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类型的文件数组。 我疯了吗?

原因是我正在处理不同数量的参数,未来可能会有更多参数,这意味着在现有表中添加另一个字段。

1 个答案:

答案 0 :(得分:2)

它可以工作,并且很容易将数据解析成一个类。

但是,如果您需要向所有用户添加新参数,或者如果您需要更改/修复特定参数,那么在数据库中进行更新会非常烦人,因为您需要编写应用程序,或使用字符串操作函数。

您可以使用一个简单的备用数据库结构:

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

所以一个记录应该是:

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