当前的数据库结构改进&实施徽章系统

时间:2013-08-02 14:17:01

标签: sql database badge

我正在制作一个网站,其中包含需要猜到的徽标。目前这是我的数据库设置:

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个则需要相同的资源。我没有'这样做有几个原因:

  • 在我的ajax调用中需要额外的查询,我希望尽可能缩短
  • 页面重新加载不应该频繁发生,因此不应该花费太长时间
  • 我不知道如何计算每个级别的猜测总数,除非该表格如下:AmountOfGuesses(id, user_id, level, counter)但是根据您解锁的级别数量需要更多资源。

至于徽章系统,我知道应该检查这些术语,例如当用户提交答案时。如果当然这在每次提交答案时都需要另一个查询,即检查用户具有的答案总量。然后根据该数量,应分配徽章。至于徽章,我正在考虑像这样的表结构:

Badges( badge_id, name, description, etc)
BadgeAssigned( user_id, badge_id, time )

这种结构对徽章有用吗?

我的数据库其余部分的当前结构是否良好,或者如果调整它是否更好?

0 个答案:

没有答案