0

致力于徽章系统的数据库设计,该系统将同步(请求/响应)为超过 1000 多个徽章的变体标准工作我想知道当用户发出请求时如何检查徽章。

我想的第一个数据库模式是:

徽章
身份证名称
1 在过去 30 天内签入 10 瓶啤酒,来自 X 制造商
2 签到 5 来自英国的有机啤酒
3 评论 5 种不同的签到

规则
标识键
1 个计数
2 制造商_of
3 last_x_days
4 comment_x_diff_checkins
5 来自_country_x

徽章规则
徽章 ID 规则 ID 值
1 1 10(签到10杯啤酒)
1 2 122(制造商 ID)
1 3 30(天)

想法是用户进行签到,系统应该检查不同徽章的不同变体。

例如,需要检查上述数据库数据,用户在过去 30 天内对 ID 为 122 的制造商进行了 10 次签入。显然,为每个请求检查 1000 多个徽章是没有意义的,但不知何故,只能检查用户可以为该签入赢得的徽章。

我正在考虑将用户状态保存在不同的数据库表中,但我认为这不适用于所有规则,例如last_x_days

用户状态
id user_id 键值
1 1 签到 8
2 1 条评论 12        

PS 我见过 Untappd 应用程序,它有数千个徽章,它会根据用户的要求分配它们。

我将不胜感激。

4

0 回答 0