【发布时间】:2009-06-26 13:44:31
【问题描述】:
快速提问:
总而言之,我对如何设计这样一个允许无限期创建徽章规则而不需要对数据库中先前存在的用户表进行结构更改的数据库感到有些困惑。
存储徽章标题、标准等。该表会是什么样子?
- badge_id (1)
- badge_title(10K 徽章)
- badge_image (10k.jpg)
- badge_criteria ([posts] >= 10000)
...
啰嗦的问题:
我想在我自己的个人项目中实施徽章系统,但我正在寻求一些关于如何最好地做到这一点的建议。我在这里阅读了一些关于徽章系统的问题,但没有看到数据库架构受到太多关注。
基于用户积分的徽章(假设的“10k 徽章”)看起来非常简单。任何影响用户声誉的事件(赞成、反对、接受答案等)都会调用一种方法来审查用户的新声誉,并可能授予徽章。
该系统听起来很简单,但是对于想要在未来不费吹灰之力地创建无数徽章的管理员来说,它看起来像一个数据库 - 其中一些可能基于不同的标准,而不是只是用户声誉。
用户声誉可能是用户记录本身的一个值。但理想情况下,您不想在创建新徽章时避免向用户表添加新字段吗?例如“已编辑的 100 个条目”徽章 - 您不会在用户表中创建新列“条目编辑”,对吗?然后在每个条目编辑后增加它...
有什么提示吗?
Stackoverflow 存档:
注意:我不是在问如何将徽章与用户相关联。我不是在问如何授予徽章(将以编程方式完成)
【问题讨论】:
-
+1,因为我正在寻找相同的答案。
-
@Jonathan Sampson 您能否分享您自己的最后一个答案:1)您得出的结论是什么方法? 2) 从你的方法中吸取的教训。问候和感谢这个奇妙的问题。
-
Sampson 我也很好奇你是否完成了你的项目并且有什么有用的东西可以分享?我找到了你的帖子,因为我有同样的想法,将徽章的标准存储在徽章表中。我仍在研究实现我的系统的最佳方法,我很想听听任何做过的人的意见!谢谢
-
@JasonDavis 我没有。如果我今天要这样做,我可能会有一系列脚本(每个脚本代表一个徽章/成就),它们会定期运行。在我看来,一系列外部脚本是最灵活的解决方案,因为它允许超精细的临时条件。
标签: database-design badge