在我的asp.net应用mvc4我允许管理员更改各种站点范围,如网站的标题,有特色的电影,类别,颜色方案等保存站点级设置
如何保存这些变化?我应该在数据库中创建一行,包括每个设置作为列还是?
如果是这样,每次我想显示该网站,我当然需要该网站的标题 - 然后我必须每次查询数据库检索标题?
在我的asp.net应用mvc4我允许管理员更改各种站点范围,如网站的标题,有特色的电影,类别,颜色方案等保存站点级设置
如何保存这些变化?我应该在数据库中创建一行,包括每个设置作为列还是?
如果是这样,每次我想显示该网站,我当然需要该网站的标题 - 然后我必须每次查询数据库检索标题?
这样做的两种可能方法是在会话中或在数据库中按照您的建议。
Session: 如果此信息不能永久保存,您可以将它存储在服务器端的会话中。根据您设置的策略,用户退出浏览器后信息会消失,这可能不是您想要的。
数据库: 您可以将每个用户(userId,设置)的所有信息存储在单行中。这些设置可以存储为xml等为像这样一个字符串:
<settings>
<title>...</title>
<featuredmovies>
<movie>...</movie>
</featuredmovies>
...
</settings>
您必须查询数据库,但它是一个非常便宜的查询作为你唯一的选择基于用户ID。您也可以将信息存储在会话中,一次只检索一次,只有在用户更改其设置时更新。这意味着您以后每次需要的设置信息都可以从会话中获得,而不是数据库非常快。
编辑:然后,你会解析XML到你想要的设置服务器端。
好吧谢谢 - 我会这样做:) –
您可以使用会话来存储将在所有页面上使用的网站标题和其他数据 –