最近在做排行榜功能,排行榜无非就是对用户一些数据的排序,在量级不是很大的情况下还是比较简单的,在数据结构上使用数组,set,map都可以,依具体情况而定,这里不做过多讨论。现在遇到的问题是在数据库方面的,也就是对排行榜数据该已什么方式进行存储。
我们用的数据库是mysql,如果排行榜量级在百名之内的话可以把每个进榜用户的数据都当做是一条数据库记录插入表中,因为数据量级比较小,插入删除操作不是太多,对数据库的压力不是很大(定时存储还是要做的,减少对数据的操作频率)。数据库表设计大概是这样的:
+-----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| ranktype | int(10) unsigned | NO | PRI | NULL | |
| order | int(10) unsigned | NO | PRI | NULL | |
| id | int(10) unsigned | NO | | NULL | |
| data | blob | YES | |