Mad*_* D. 4 database optimization scalability achievements badge
我正在实施一个网站,我的用户将在完成某些目标或任务时获得徽章.
徽章也有水平/颜色.因此,例如,用户将从0级青铜徽章开始,随着他们的进步,他们将获得1级青铜徽章,并且在更多级别之后,他们将获得0级银徽章等等.
我正在构建数据库,我不知道如何将徽章连接到用户.
我提出的想法是为用户创建1个表,为徽章创建1个表,并将第3个UserID连接到BadgeID:
我关心的是优化.随着越来越多的用户加入网站并获得徽章,访问该表并搜索记录的速度会变慢吗?
我在这里读到如何在Java中使用单例在服务器上定期运行脚本,并根据规则检查用户的状态,以升级符合上限目标的标记.这种方法真的可扩展吗?或者我应该关注这个帖子?
TIA
随着越来越多的用户加入网站并获得徽章,访问该表并搜索记录的速度会变慢吗?
如果表的索引正确,则不显着.
想想这样......如果百科全书中的文章数量是五倍,那么在百科全书中找到一篇文章需要花费更长的时间吗?
并不是的; 因为百科全书按字母顺序编号,即使文章数量显着增加,也不需要花费太长时间才能找到.但是,如果它没有被编入索引,那么随着百科全书的大小增长,查找内容所需的时间会呈指数级增长.
鉴于你的问题和你所关联的资源,我觉得你正专注于狭隘的"徽章",可能会让你错过更一般的画面.
例如,如果徽章总是按顺序发出,您只需要记录某人得到的最后一张徽章; 在这种情况下,他们必须得到所有徽章,直到最后一个徽章.如果它们不是增量的,那么使用您描述的链接表可能会更好.
尝试用与数据库或数据建模相关的术语描述您的问题,而不是专门针对您的问题域的术语("徽章").这应该可以帮助您找出您应该寻找的信息类型,并最终引导您采取正确的行动方案.
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |