最简单的方法是用一个有效的例子来描述我的问题:即使您没有登录,YouTube也会记住您观看过的内容,下次会根据以前观看过的电影为您提供建议。
我的网站在某种程度上类似:用户可以在不登录的情况下对文章进行投票,并且网站会记住使用Cookie的投票。我已经找到了一种工作方法,但必须有一种更简单的方法 - 现在数据库的使用还不过是优化的。
对于每位访客,都会检查他是否有饼干。如果是,我查询他的投票。如果不是,我创建一个虚拟用户,并将他发送出去。现在我将此用户存储为“last_visit”时间戳。在此之后,两个用户的一切都是相同的。我的问题是我的数据库填满了虚拟用户,所以我让我的cookie在3个月内过期,我的网站定期检查哪些用户在过去3个月内没有访问我的网站,并将其从数据库中删除。
我知道我过于复杂了,但我的投票系统正在使用AJAX,我找不到一种方法来发送一个cookie(并创建虚拟用户)只有在投票发生时而不是每次简单的访问者浏览我的网站 - 没有投票。
还有一个注意事项:我坚持使用cookies - 我知道在投票时更容易存储IP-s,但有学校,企业使用相同的IP,我喜欢让用户使用我的站点。
我在这里想念什么?如何优化?
答案 0 :(得分:1)
如果他们没有永久帐户,为什么要将与他们相关的任何内容存储在数据库中呢?只记录他们之前在cookie中的投票。你也可以在数据库中存储整体投票,但是匿名,而不是将这些投票与“用户”联系起来。