题
已经有几个问题,这种处理这个但不是复盖我确切的问题,所以在这里,我们走。
网站的设置,如果这些存储在数据库做你:
- 检索他们的数据库,每次有人让一个请求
- 它们存储在一个会议变量上登录
- ???????
对用户的具体设置,我做相同的作为网站的设置??
任何指导/最佳做法,将不胜感激。
欢呼
解决方案
我更喜欢一种办法喜欢Glomek提出了...缓存设置在WebCache将大大提高速度的访问。考虑以下几点:
#region Data Access
private string GetSettingsFromDb(string settingName)
{
return "";
}
private Dictionary<string,string> GetSettingsFromDb()
{
return new Dictionary<string, string>();
}
#endregion
private const string KEY_SETTING1 = "Setting1";
public string Setting1
{
get
{
if (Cache.Get(KEY_SETTING1) != null)
return Cache.Get(KEY_SETTING1).ToString();
Setting1 = GetSettingsFromDb(KEY_SETTING1);
return Setting1;
}
set
{
Cache.Remove(KEY_SETTING1);
Cache.Insert(KEY_SETTING1, value, null, Cache.NoAbsoluteExpiration, TimeSpan.FromHours(2));
}
}
private Cache Cache { get { return HttpContext.Current.Cache; } }
你会获得的动态加载善、记忆保护的折腾项目的高速缓存后2小时不使用和冲洗和重装需要时设置的修改。
其他提示
我建议建立一个模块,用于检索的偏好,可以实施的无论哪种方式,那么对于你的第一个实施打击的数据库,每次由于这是更加容易。如果你有性能的问题,加缓存模块以减少数据库业务。
通常我会把网站设在网络上。配置文件,除非你建立一个应用程序,有多个地点并得到改变通过应用自身的常见,它通常没有意义,以把它放在数据库。
对用户的具体设置,我会看到开始与默认asp.net 配置文件提供将储存在数据库中的设置和管理retrival的用户设置的每一次请求,保存更新,以结束以尽量减少数据库的电话。一旦你开始打击性能的问题可以考虑延伸的配置文件提供缓存和/或您的具体需要。
不隶属于 StackOverflow