【发布时间】:2009-05-07 21:59:10
【问题描述】:
我正在为一个网站设计一个数据库,让用户能够通过执行某些活动获得积分(声誉),但我正在为数据库设计而苦苦挣扎。
我计划记录用户所做的事情,这样他们提交的物品可能会获得 25 分,他们制作 30 厘米每人获得 1 分,以及另外 10 分因为表现出色!
显然所有数据都将在那里,但似乎很多或查询以获得我想在他们的用户名旁边显示的每个用户的总分(以级别的形式)。例如,查询提交的项目表以从该用户那里获取每个项目的分数,查询 cmets 表等。如果所有这些都需要为页面上提到的每个用户完成......很多查询!
我曾考虑在用户表中保留一个分数,这样查找起来似乎要快得多,但我已经意识到存储可以从其他数据中计算出来的数据是 糟糕的!
我见过很多做类似事情的网站(甚至堆栈溢出也类似),所以我认为必须遵循“最佳实践”。谁能建议它可能是什么?
任何建议或 cmets 都会很棒。谢谢!
【问题讨论】:
标签: sql mysql database database-design