我一直在浏览本网站的答案,但我仍然有点不确定如何在其数据库结构和实施计划一个类似的系统。成就/徽章系统
在PHP和MySQL中,很明显,一些成就是立即获得的(当采取专门行动时,在所有情况下填写所有配置文件字段),尽管我知道SO更新并在一定数量的时间。有这么多的用户徽章不会造成性能问题(在规模上:两个用户的徽章数量很多)。
因此数据库结构我认为会的东西一样简单:
Badges | Badges_User | User
----------------------------------------------
bd_id | bd_id | user_id
bd_name | user_id | etc
bd_desc | assigned(bool) |
| assigned_at |
但一些人说,这将是更好的有一个渐进式的方法让谁共有1,000,000论坛帖子用户不会减缓任何功能关闭。
那么它会成为徽章的另一张表,可能是增量式的,或只是上面的badge_user表中的'进度'字段?
感谢您的阅读,请关注期望系统的可扩展性(例如成千上万的用户和20至40个徽章)。
编辑:一些铁出了一些混淆我已assign_at作为日期/时间,授予徽章的标准将被最好放置在准备的查询/功能为每个徽章不是吗? (更好的灵活性)
是一些比较流行的徽章检查比其他人还有吗? – bluedaniel 2009-11-16 20:49:37
你能否澄清一下“分配(布尔)”的需求?是不是有点多余,因为除非你被分配了徽章,否则在第一种情况下你不会有映射?为什么论坛帖子的数量很重要? – Fredrik 2009-11-16 20:50:27
我的第一个错误!说你分配根据职位有良好的徽章制作即奖励高职位量徽章 - >激励让用户交互 – bluedaniel 2009-11-16 20:53:05