在数据库中保存点历史记录

时间:2013-02-22 21:23:17

标签: mysql database database-design

我有一个会员网站,每个用户每天都可以在足球比赛上下注几个。我们的想法是将每天的点数相加,计算出来并在图表中显示(使用Google图表API)。到目前为止都很好。每天都会为每个用户计算新点,并在图表上显示过去几天的点数。这样用户就可以在曲线或图表中看到他过去的结果。我唯一的猜测就是制作一张带有ID的表 - 用户名 - 积分 - 回合。我不希望我的数据库因为构造不良的表和查询而受到影响。

所以我的问题是:我应该如何在我的数据库中进行设置?

这是我现在的表:


表 - >会员
ID
FIRSTNAME
姓氏
用户名密码

(我的虚构表格)。

表 - > MEMBERS_POINTS
ID
用户名
点数


所以我设置了一个查询,从所需的回合中获取用户点数。这是一个好方法吗?这会减慢我的数据库吗?每个用户将玩30轮,对于几个用户,该表可能包含数千行。

发表帖子here但我没有任何答案,我有一些不同的想法。

修改

这是一个会员网站,每个注册用户必须同时进行所有60个投注,60个投注将在30天内分配(我称之为轮次)。每轮包括2个投注,最多6个点。总分将与领导者一起显示,以及每天的获胜者。每个用户都应该能够以图表的形式查看他或她过去的分数。

1个用户= 60个投注= 30天(轮次。记录中保留的总积分和每天积分。

1 个答案:

答案 0 :(得分:2)

这里有几件事情要发生。

首先,您似乎关注性能。从性能的角度来看,你提到的设计应该没问题(尽管见下文) - 数据库非常擅长处理大量数据。在MySQL上,这样的设计可以增长到数百万条记录而不会出现任何真正的性能问题。

其次,存在设计问题。你真的应该read up进行数据库设计 - 它在一个问题中也太大了 - 但是你的member_points表应该链接到member.id列(假设它是主键),而不是用户名 - 如果用户改变了他们的用户名,您必须更新其所有member_points记录。