例如 V2EX 增加财富时
是直接把增加的值 update 到 user model 上财富值的 IntegerField ?
还是
有个所有用户的 财富增加值 model , 每增加一笔财富就加一条 row ,每次都计算一次?
怎么设计比较靠谱
1
nisnaker 2015-11-09 14:31:49 +08:00
两个一起来。
|
2
qiayue 2015-11-09 14:37:53 +08:00
显示的时候从 user 里取,就不需要每一次都计算。
财富变化表用于记录每一次变化,方便做账核对。 |
3
hellov22ex 2015-11-09 14:40:45 +08:00
可以两个一起来,尤其是下面那个,完全可以增加一个新的字段,标明当前这一笔增加后产生的新的总量是多少,和前面的核对下。
|
4
raysmond 2015-11-09 14:42:50 +08:00
DB model 里面记录统计值,方便显示的时候查看
需要记录明细就开一个 table 记录每次统计变化 需要的统计的时候,首先在 redis/memcached 中更新统计值,然后异步(队列、 rabbitmq , scheduling )保存到 DB 显示统计都从 redis/memcached 中读取,非常快 重点是缓存,统计都在内存中做,异步持久化到 db ,或者 db 直接不存, redis 也可以做持久化 |