致力于徽章系统的数据库设计,该系统将同步(请求/响应)为超过 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 应用程序,它有数千个徽章,它会根据用户的要求分配它们。
我将不胜感激。