【发布时间】:2011-11-09 21:05:43
【问题描述】:
我希望用户能够在我的网站上获得 XP(经验值)。达到一定数量后他们会升级。
我需要有关如何处理所有数据的建议。更准确地说:XP 的数量和所代表的等级。
- 用户级别将显示在每个顶部的栏中 页面。
- 甚至可能是确切的 XP
- 应该是高效的(不是很重的数据库)
- 每个级别所需的 XP 都会有所不同(级别越高,需要的 XP 越多)
我为我的网站使用 CodeIgniter。
我猜我的 PHP 技能介于初学者和有经验的人之间:)
我的第一个想法:
“仅数据库”
将 xp 存储在我已经存在的“用户”表的列中。为了获得相应的级别,我将创建另一个包含 2 列的表:级别 --- 需要 XP
例如:
1 --- 0
2 --- 100
3 --- 500
等等
不得不承认,我真的不知道如何从中获得关卡。但我想它会以某种方式起作用。 但这意味着我每次都必须连接到数据库并从两个表中检索数据。我认为这不是一个好的解决方案。所以这里是
我的第二个想法:
“更新的会话”
将 XP 存储为会话数据,并在我的“用户”表中为 XP 创建一列。每次 XP 更改时,我都必须更新会话数据和数据库,但我不必访问数据库来检索 XP 的数量。我可以从会话数据中做到这一点。 (安全问题?!我对会话使用 CodeIgniters 加密)
为了获得关卡,我可能会在存储关卡的“用户”表中添加另一列。我可以使用获取相应级别(?)的 php 函数,而不是数据库中存储所需 XP 的额外表。那有意义吗?将为我节省额外的数据库连接。
类似于:get_level($xp)
要更新级别,我必须在每次更改 XP 时检查级别。效率高吗?
我如何准确地获得已知 XP 数字的相应级别?可以用PHP开关吗?
如你所见,我不知道自己在做什么;P
有很多想法,但似乎没有什么是最好的。
感谢任何帮助/建议 :)
问候
迪勒
【问题讨论】:
标签: php sql database-design codeigniter