请教能追踪物件排名的表单设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
vixvix
V2EX    MySQL

请教能追踪物件排名的表单设计

  •  
  •   vixvix 2014-07-23 23:46:45 +08:00 3415 次点击
    这是一个创建于 4104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设我要做社区排名,不断有新用户加入,每个用户有得分,每天根据得分做个头100名的排行榜,还要显示每个排名的变化,例如今天ABC升了2名,efg排名下降了5名。对于没个用户,还能查到位置的每天变化。请问一下这样的表单要怎么设计才能做到快速查询?

    我的想法是一个大表存历史数据

    name point date
    ----------------------
    abc 2,700 20140702
    efg 2,600 20140702
    ...
    abc 2,100 20140701
    efg 2,500 20140701

    然后再每天更新排名表

    name point date position delta
    --------------------------------------------
    abc 2,700 20140702 1 +1
    efg 2,600 20140702 2 -1


    从来没做过数据库设计,知识也就限于学校学的和日常用的pk, m2m之类的。有没有一些入门的表单设计读物? 或者google keyword? 我暂时找到的是db design pattern.

    先谢.
    6 条回复    2014-07-25 00:51:07 +08:00
    loddit
        1
    loddit  
       2014-07-23 23:51:47 +08:00
    我觉得每天做一个前100名的快照就可以,用什么形式存无所谓,只不过这样新上榜的就不计算上升多少了。

    用户获得的每一次积分,都要有记录时间,这样可以回溯出来历史的数据。
    vixvix
        2
    vixvix  
    OP
       2014-07-24 00:18:42 +08:00
    @loddit 如果我以后要实事排名呢? 每次用户request的时候才生成这个排名表? 好像会很慢。
    loddit
        3
    loddit  
       2014-07-24 00:34:36 +08:00
    这时就用快照,就是像相当于生成好的一份历史数据。
    vixvix
        4
    vixvix  
    OP
       2014-07-24 23:03:27 +08:00
    @loddit 这个快照是啥意思,就单纯生成一个表,还是mysql或者其他dbms的功能?
    loddit
        5
    loddit  
       2014-07-24 23:07:44 +08:00   1
    可以是一个表,甚至也可以用文件或者什么。
    不过最适合的应该是一个key-value的存储结构吧。
    vixvix
        6
    vixvix  
    OP
       2014-07-25 00:51:07 +08:00
    我也想过用这个小project试试nosql, 不过历史数据还是得用table, 查询方便。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2833 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:40 PVG 10:40 LAX 19:40 JFK 22:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86