2011-03-29 53 views
0

我想将最近查看的配置文件列表存储在cookie中。
我有一个网站,人们输入游戏角色ID(魔兽世界),并可以查看角色的个人资料。
字符标识由名称(unicode,最多15个字符),服务器名称(unicode,最多25个字符)和区域(2个字符,拉丁-1)组成。
我最近在Cookie中存储了5个最近查看的字符,这些值是URL编码,因为并非所有的浏览器都是unicode-cookie友好的。将原始数据存储在cookie中 - 好主意还是坏主意?

这使得这个cookie长达500个字符。

问题:这是一个合理的方法吗?以下是我希望您评估的其他解决方案。

  1. 存储characterId,因为它在数据库中定义。优点:小的cookie大小,缺点:a)字符可以从数据库中删除(数据库只是一个缓存来加速更新),b)数据库可以重新索引。
  2. 存储名称+服务器+区域散列,并通过散列在数据库中查找它。缺点:a)再次,角色可以从数据库中删除,优点:耐驯化。
  3. 要求用户创建一个帐户并将其存储在那里。缺点:没有人喜欢创建帐户,我宁愿不这样做。

我分裂的头发和我现在的解决方案(在URL中存储URL编码列表)是否足够好?

编辑:需要注意的是“最近的人物”名单是那里只是为了方便,如果它被清除是非常重要的 - 这是不是在所有的问题(这是类似于一个“最近的文件”在某些应用中) 。

回答

0

如果您目前的解决方案没有遇到问题(或限制),我会保持原样。请注意,通过存储整个角色并显示该数据,数据可能已过时。

我会将ID存储在cookie中,并执行一些服务器端逻辑以从ID列表中返回可用字符。数据库中不存在的ID可以跳过显示并再次在ID列表中打开。

+0

好吧,在这种情况下,数据最不可能会过时,因为名称+服务器是角色的原始身份,所以它不会得到更多的标识。 – 2011-03-29 16:17:41

0

个人而言,我宁愿将ID存储在cookie中,并将其余数据存储在数据库中。如果可以在用户会话期间删除数据,请为用户的会话创建一个新表(使用他们的session_id),并将 ID存储在Cookie中。在该表中放入日期时间并定期(如在cron作业中)删除超过x天的任何记录。

相关问题