Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web applications 如何存储每个用户的参数-征求意见_Web Applications_Parameters - Fatal编程技术网

Web applications 如何存储每个用户的参数-征求意见

Web applications 如何存储每个用户的参数-征求意见,web-applications,parameters,Web Applications,Parameters,对不起,这是一个非常开放的问题 我想让我的网站上的用户能够修改html/css参数的模板,他们使用他们的个人资料-有点像myspace(真的,真的很抱歉使用这个作为一个例子…) •有一个用户可以选择的“主题”库 •有些主题可以定制,有些则不能 •主题不一定具有相同的可定制参数 我想为每个用户存储定制变量,针对他们选择定制的每个主题。这个最好的格式是什么 DB本可以 -------------------------------------- user id | theme id | custom

对不起,这是一个非常开放的问题

我想让我的网站上的用户能够修改html/css参数的模板,他们使用他们的个人资料-有点像myspace(真的,真的很抱歉使用这个作为一个例子…)

•有一个用户可以选择的“主题”库 •有些主题可以定制,有些则不能 •主题不一定具有相同的可定制参数

我想为每个用户存储定制变量,针对他们选择定制的每个主题。这个最好的格式是什么

DB本可以

--------------------------------------
user id | theme id | custom parameters
--------------------------------------
我怎么能储存这样的东西 背景颜色=#34ed55 bg image=bg.jpg 字体=漫画版 颜色=554323 css=h1{ 字号:1em; 颜色:蓝色; } .定制{ 填充:10px;
}

如果参数都是相同类型的(例如字符串值),则可以使用单独的参数表来映射表示用户主题属性的键/值对

user_theme
    user_id
    theme_id

user_theme_parameters
    user_id
    key
    value
这张桌子可能会像:

user_id  key      value
1        bgcolor  #000000
1        bgimage  bg.jpg
2        font     Arial

如果主题共享公共键,您可以将参数键分解到另一个表中,并在此处通过ID引用它们,而不是复制键字符串(例如“bgcolor”)。

如果参数都是相同类型的(例如字符串值),您可以有一个单独的参数表来映射表示用户主题属性的键/值对

user_theme
    user_id
    theme_id

user_theme_parameters
    user_id
    key
    value
这张桌子可能会像:

user_id  key      value
1        bgcolor  #000000
1        bgimage  bg.jpg
2        font     Arial

如果主题共享公共键,您可以将参数键分解到另一个表中,并在此处通过ID引用它们,而不是复制键字符串(例如“bgcolor”)。

您可以使用以下表:

custom_param: 
    param_id
    theme_id
    param_name
user_params: 
    user_id
    param_id
    value
user_settings:
    user_id
    ...        -- whatever other user settings you store
    theme_id   -- for current theme
使用此方法可以从级联删除中获得一些良好的行为。如果某个参数不再存在,则只需将其从自定义参数中删除,并将其从用户设置中删除。如果要删除整个主题,它将级联到自定义参数,删除所有相关参数,然后删除所有相关用户参数


只需确保设置用户设置表,以便在删除主题时将主题id设置为某个默认主题,而不会删除该行

您可以使用以下表格:

custom_param: 
    param_id
    theme_id
    param_name
user_params: 
    user_id
    param_id
    value
user_settings:
    user_id
    ...        -- whatever other user settings you store
    theme_id   -- for current theme
使用此方法可以从级联删除中获得一些良好的行为。如果某个参数不再存在,则只需将其从自定义参数中删除,并将其从用户设置中删除。如果要删除整个主题,它将级联到自定义参数,删除所有相关参数,然后删除所有相关用户参数


只需确保设置用户设置表,以便在删除主题时将主题id设置为某个默认主题,而不会删除该行

您可以创建一个包含自定义参数的类,并将该类的序列化版本存储在表中的CustomParameters字段中。在我的例子中,我扩展了现有的Users类,以获取和设置UserCustomParameters类中的值

这样做的好处是,一旦它到位,我就不必修改我的数据库

当然,您必须决定是否需要在表中使用自己的字段。对我来说,简单的用户设置,比如那些控制外观的设置,不需要自己的字段


正确序列化和取消序列化类是最耗时的部分。

您可以创建一个包含自定义参数的类,并将该类的序列化版本存储在表的CustomParameters字段中。在我的例子中,我扩展了现有的Users类,以获取和设置UserCustomParameters类中的值

这样做的好处是,一旦它到位,我就不必修改我的数据库

当然,您必须决定是否需要在表中使用自己的字段。对我来说,简单的用户设置,比如那些控制外观的设置,不需要自己的字段

正确序列化和取消序列化类是最耗时的部分