我一直在浏览这个网站以获得答案,但我仍然不确定如何在其数据库结构和实现中规划类似的系统.
在PHP和MySQL中,很明显会立即获得一些成就(当采取专门行动时,在所有情况下:填写所有个人资料字段),虽然我知道在一定时间后更新并分配徽章.如此多的用户和徽章不会产生性能问题(就规模而言:用户和徽章数量都很大).
所以我假设的数据库结构就像这样简单:
Badges | Badges_User | User
----------------------------------------------
bd_id | bd_id | user_id
bd_name | user_id | etc
bd_desc | assigned(bool) |
| assigned_at |
Run Code Online (Sandbox Code Playgroud)
但正如有些人所说,最好采用增量式方法,因此拥有1,000,000个论坛帖子的用户不会放慢任何功能.
那么它是徽章的另一个表可能是增量的还是上面badges_user表中的'progress'字段?
感谢阅读,请关注所需系统的可扩展性(如数以千计的用户和20到40个徽章).
编辑:有些人认为我已经指定了一些混淆日期/时间,颁发徽章的标准最好放在准备好的查询/每个徽章的功能中不会吗?(更好的灵活性)