英超联赛积分榜。 比如我数据库里存了好多年的 英超的比赛数据,一场一条。
然后我突然想从现在开始,要记录每个赛季的排名情况。 现在问题来了,我是保存这个实体呢(一个赛季一个表) 还是说我每当要排名的时候,都抽取历史比赛数据,计算那一年的排名情况?
或者用 SQL 的数据计算每年的积分榜情况,存到 NOSQL 数据中?
有点想不明白。
大佬有没有什么好的实现方试,最好是在 MYSQL 中实现的
1
loginv2 2018-02-24 20:18:50 +08:00 via Android
除了当前赛季的,算完了存起来。赛季结束后也和以前一样。用什么写都行,程序简单点,SQL 略绕。重复统计不会变化的数据没什么意义
|
4
loginv2 2018-02-24 20:36:50 +08:00 via Android
存哪里都行啊,你纠结的应该是统计粒度的问题,最小的粒度肯定是不统计,需要的时候临时计算。但是数据量小的时候是可以的,数据多了就不行了。如果没法从需求上来好好规划统计条件,那就做统计缓存吧,相同条件的,第二次统计直接取结果
|
6
c6h6benzene 2018-02-25 03:04:09 +08:00
我会按 @loginv2 那样,过往赛季的排名算好存成表,当前赛季在需要的时候现场算。因为过往赛季的排名肯定是不会再变了。
多一个联赛的话,你是指多一个联赛的所有比赛数据还是?我可能会放在同一个表里但是加上 leagueID 之类的。 |
7
jakeyfly OP @c6h6benzene 因为名次这个数据要经常用到,如果要用的时候实时算,不太好吧。另:存起来的意思是这个赛季完了,就在数据库里 生个一个表存起来的意思?
其实 我纠结的地方是:我现 在的结构是一个所有球队的表,每条数据像你说的加个 LID 连接到联赛表。还有一个比赛场次表是接到球队表的,如果还要搞个排名表,那就是照球队表的形势再搞个结构差不多的表 加上一些积分胜场之类的字段。这个表是一年一张存,还是说加个年份 ID 也只存一张表?或者 我都想说是否把这类的东西存到 nosql 里去 因为偶尔也会要查询这个数据 |