坚持用户选择的最佳方法是什么?

时间:2012-06-01 16:13:35

标签: sql performance persistence user-input maintainability

在我的应用程序中,我想在第一次访问屏幕时向用户提示某个新功能,并提供某种对话框。在随后的访问中,此对话框未显示。

显而易见的解决方案是使用cookie或将其保存在数据库中。

但我担心的是: - 随着时间的推移,代码中的所有检查都会导致代码混乱 - 使用数据库解决方案 - 它可能会带来性能问题。

如果用户清除了他的cookie(例如),我不希望他们看到过去两年的每个新功能更新(一个屏幕随着时间的推移可以有多个新功能)。

有没有一种愚蠢/简单的方法来处理这个问题? Twitter和facebook在推广新功能时如何做到这一点?

我的环境是MSSQL,ASP MVC如果重要的话。

5 个答案:

答案 0 :(得分:2)

同时使用 - cookies作为缓存技术 - 首先检查cookie。如果它不包含标志 - 则询问DB。

此外,您可以在登录时初始化该cookie。每个用户会话一次数据库调用。

答案 1 :(得分:1)

就个人而言,我会对用户记录使用数据库标志。

就像你说的那样,cookie可以被销毁并导致恼人的重复提醒。

如果你做得对,我认为你不必担心“乱码”。

答案 2 :(得分:1)

由于您有用户登录,我假设您也有某种类型的服务器端会话。您可以将用户首选项存储在数据库中,并在登录时将它们缓存在会话中,从而避免每次请求都进入数据库。只要您信任您的会话以进行身份​​验证,您当然可以信任它以获取用户首选项。

答案 3 :(得分:0)

我们将其存储在XML中。然后,您可以使用序列化来快速保存/加载设置。我们将XML存储在SQL中(MS SQL具有支持XML的功能)

答案 4 :(得分:0)

代码中的检查独立于存储数据的位置,这是一个不同的问题。

根据你的问题我会说要使用数据库,为了速度和简易原因。