gpt4 book ai didi

php - 有什么想法可以改进我的徽章系统吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:52:50 24 4
gpt4 key购买 nike

我正在做一个徽章系统,到目前为止,我有这个想法:

创建一个 UserMeta 表来存储将在条件中使用的数据。

UserMeta
===========================
user_id | posted_comment_count | flagged_comment_count | reputation | etc.

我想知道这是否是个好主意,好像我需要添加一些元作为标准,我需要添加一列,所以我想在 json 中使用序列化对象,或者例如。

另一个名为 Badge 的表:

badge_id | badge_name | badge_criteria

其中 badge criteria 是 json 或任何其他序列化格式,它存储如下对象:

{
'posted_comment_count': '>= 20',
'flagged_comment_count': '=10',
}

还有另一个将用户与徽章相关联的表(一个简单的关联表)

我正在使用 Doctrine2,我想使用 Event 来更新 UserMeta。

有什么反馈、建议吗?

最佳答案

我的游戏化数据库非常简单。我有一个“货币”表,它有一个字段,一个名称。我有一个“UserCurrency”表,其中包含用户的 ID、他们赚取的货币的 ID 以及他们赚取的整数。当然,我有一个用户表。

就是这样。

我使用 Django,所以其中一些可能没有意义,但基本上我有一个事件监听器来监听数据库中的事件。当用户执行导致命中数据库的任何操作时,事件监听器将遍历一系列函数,每个函数都包含一个简单的目标语言标准,用于决定何时授予徽章。如果用户达到该标准,则授予徽章。 (“货币”可能是“帖子数”或“回复数”,甚至是“戳数”。不要将其误认为是货币值(value);它只是任何 是你要追踪的。

这是一种非常简单且完全可扩展的记账机制,用于记录分数,而不会因您正在跟踪的特定事物的详细信息而扰乱您的数据库架构。它完全独立于任何其他用户跟踪详细信息,例如个人资料。如果你想添加一种新货币,你要跟踪和关联并为其授予徽章的新事物,你将其名称添加到货币表中,一组如何授予它的规则,一组阈值规则用户会收到一些确认,然后由您决定如何向用户展示该确认以及奖励的后果是什么。

此外,规则可以相互关联。 Stack Overflow 在这方面做得非常(非常!)好。例如,当您访问该站点时,触发的规则甚至不计算货币,而是计算“爱好者”徽章的访问天数。每次您获得声誉时,如果您的分数超过 200,代码只会将货币计数器“传奇”更新为 1,当该货币达到 150 时,另一个触发器会奖励您的“传奇”徽章,依此类推。解耦和独立性是游戏化设计的有力工具。

关于php - 有什么想法可以改进我的徽章系统吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com