Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
Mysql 保存站点范围的设置_Mysql_Database_Entity Framework_Entity Framework 4 - Fatal编程技术网

Mysql 保存站点范围的设置

Mysql 保存站点范围的设置,mysql,database,entity-framework,entity-framework-4,Mysql,Database,Entity Framework,Entity Framework 4,在我的asp.net mvc4应用程序中,我允许管理员更改各种站点范围,如站点标题、特色电影、类别、配色方案等 如何保存这些更改?我应该在数据库中创建一行,将每个设置作为列或列包含在内吗 如果是这样的话,每次我想显示站点时,我当然需要站点的标题-然后我每次都要查询数据库来检索标题吗?两种可能的方法是在会话中或在数据库中,正如您所建议的那样 会话: 如果不想永久保存此信息,可以将其存储在会话的服务器端。根据您设置的策略,信息将在用户退出浏览器后消失,这可能不是您想要的 数据库: 您可以按每个用户(

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

如何保存这些更改?我应该在数据库中创建一行,将每个设置作为列或列包含在内吗


如果是这样的话,每次我想显示站点时,我当然需要站点的标题-然后我每次都要查询数据库来检索标题吗?

两种可能的方法是在会话中或在数据库中,正如您所建议的那样

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

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

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

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


编辑:然后将xml解析为所需的服务器端设置。

您可以使用会话存储站点标题和其他数据,这些数据将在所有页面上使用