0

我想在 cookie 中存储最近查看的个人资料列表。
我有一个网站,人们可以在其中输入游戏角色 ID(魔兽世界)并可以查看角色的个人资料。
字符标识由名称(unicode,最多 15 个字符)、服务器名称(unicode,最多 25 个字符)和区域(2 个字符,latin-1)组成。
我在 cookie 中最多存储 5 个最近查看的字符,对这些值进行 URL 编码,因为并非所有浏览器都对 unicode-cookie 友好。

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

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

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

我是否分心,我目前的解决方案(将 URL 编码的列表存储在 cookie 中)是否足够好?

编辑:重要的是要注意“最近的字符”列表只是为了方便,如果它被清除 - 这根本不是问题(它类似于某些应用程序中的“最近的文件”)。

4

2 回答 2

0

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

于 2011-03-29T15:01:01.570 回答
0

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

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

于 2011-03-29T15:03:13.833 回答