为数据库中的每个用户存储颜色数组

时间:2011-09-21 13:06:19

标签: database-design

我正在考虑网站的用户可配置颜色方案的问题。该站点当前有一组平面CSS文件,可由用户选择(选择存储为SQL数据库用户表中的列)。这导致了维护问题,因为更新文件以扩展站点的CSS是不可行的。

特别是,有一组css选择器,我希望用户能够为其选择颜色值。也就是说,在伪代码中,

body {
    background-color : <% print user_bg_color %>;
}

我的问题并不关心实现这种CSS生成的机制。相反,

  

是否有标准做法或最佳方式来存储这样的价值集?

[编辑]

  

如果没有标准方法,有哪些技巧?

[/编辑]

任何此类技术都应该是可扩展的,因为对网站的CSS的进一步修改将允许网站管理员添加新变量。目前,大约有30种颜色方案,每种颜色由90个变量组成,大约35,000个用户。

1 个答案:

答案 0 :(得分:0)

我认为不一定有标准方法,但对我来说显而易见且简单的是一个基本上多对多的表(尽管你的css变量名不一定是独立存储在数据库中,除非你需要添加比变量名更多的数据):

  • USER_ID
  • css_variable_name_or_id(如果它引用了css值的sql表,则为id)

通过这种方式,您可以轻松地为用户选择所有css,或者为用户单独选择user_id和css_variable_name。

至少在user_id上放一个索引。这应该会使性能得到快速提升。 (你可能不希望在css_variable_name上有一个因为所有重复,但是值得测试两种方式)