我正在制作一个网站,其中包含需要猜到的徽标。目前这是我的数据库设置:
Users(user_id, etc)
Logos(logo_id, img, company, level)
Guess(guess_id, user_id, logo_id, guess, guess_count, guessed, time)
当用户猜测时,它是通过ajax请求完成的。在此请求中,完成了2个查询。 1检索公司数据(来自Logos
),一个用于插入/更新数据库中的新猜测(Guess
)。
现在,在每次页面加载时,我需要知道猜测的总量,以及每个级别有多少个徽标。这需要2个查询 - 一个用于检查Logos
,一个从每个级别的guessed = 1
获得猜测量(Guess
)的查询。
现在我想实现某种徽章系统,就像在这里一样。通过阅读一些other questions,我看到最好有一个单独的表,其中包含猜测的总量等等,这样如果用户有10个猜测或10000个则需要相同的资源。我没有'这样做有几个原因:
AmountOfGuesses(id, user_id, level, counter)
但是根据您解锁的级别数量需要更多资源。 至于徽章系统,我知道应该检查这些术语,例如当用户提交答案时。如果当然这在每次提交答案时都需要另一个查询,即检查用户具有的答案总量。然后根据该数量,应分配徽章。至于徽章,我正在考虑像这样的表结构:
Badges( badge_id, name, description, etc)
BadgeAssigned( user_id, badge_id, time )
这种结构对徽章有用吗?
我的数据库其余部分的当前结构是否良好,或者如果调整它是否更好?