保存站点范围的设置

时间:2013-10-21 15:53:20

标签: mysql database entity-framework entity-framework-4

在我的asp.net mvc4应用程序中,我允许管理员更改各种站点范围,例如网站标题,精选电影,类别,配色方案等。

如何保存这些更改?我应该在数据库中创建一行,包括每个设置为列还是?

如果是这样,每次我想显示网站时我都需要网站的标题 - 那么我每次都要查询数据库来检索标题吗?

1 个答案:

答案 0 :(得分:1)

执行此操作的两种可能方法是在会话中或您建议的数据库中。

<强>会话 如果不能永久保留此信息,则可以将其存储在会话中。根据您设置的策略,用户退出浏览器后信息将消失,这可能不是您想要的。

<强>数据库: 您可以将每个用户的所有信息存储在一行中(userId,settings)。设置可以存储为xml,也可以存储为单个字符串,如下所示:

<settings>
    <title>...</title>
    <featuredmovies>
        <movie>...</movie>
    </featuredmovies>
    ...
</settings>

您必须查询数据库,但这是一个非常便宜的查询,因为您只是根据用户ID进行选择。一旦检索到信息,您还可以将信息存储在会话中,并且只有在用户更改其设置时才会更新。这意味着您每次需要设置信息时都可以从会话中获取,而不是非常快速的数据库。

编辑:然后,您可以将xml解析到所需的设置服务器端。