拿一个玩游戏的具体例子举例:
用户表 user 有 coin (金币)字段
游戏得分表 game_score 用于记录用户的每一次游戏得分
金币明细表 coin_detail 用于记录每一次金币的变动
金币按天统计表 coin_day 用于记录每个用户每天的金币变动汇总
金币按月统计表 coin_month 用于记录每个用户每月的金币变动汇总
现在,用户玩了某个游戏,得分 83 ,系统奖励 10 金币,需要做以下操作:
1、更新用户表,使金币字段+10
2、游戏得分表插入一条 83 分的记录
3、金币明细表插入一条增加 10 金币的记录
4、金币按天统计表,查看是否有该用户的今天记录,没有则插入一条记录,有则更新使金币+10
5、金币按月统计表,差看是否有该用户的本月记录,没有则插入一条记录,有则更新使金币+10
当然以上都是事务操作,只要有一个不成功就需要回滚。
以上是业务逻辑,目前数据表也是按照上面的逻辑去建的五张表,请问这种业务是否有更好的处理方式?从表的设计上优化或者程序处理的优化。
请给个思路,谢谢!
用户表 user 有 coin (金币)字段
游戏得分表 game_score 用于记录用户的每一次游戏得分
金币明细表 coin_detail 用于记录每一次金币的变动
金币按天统计表 coin_day 用于记录每个用户每天的金币变动汇总
金币按月统计表 coin_month 用于记录每个用户每月的金币变动汇总
现在,用户玩了某个游戏,得分 83 ,系统奖励 10 金币,需要做以下操作:
1、更新用户表,使金币字段+10
2、游戏得分表插入一条 83 分的记录
3、金币明细表插入一条增加 10 金币的记录
4、金币按天统计表,查看是否有该用户的今天记录,没有则插入一条记录,有则更新使金币+10
5、金币按月统计表,差看是否有该用户的本月记录,没有则插入一条记录,有则更新使金币+10
当然以上都是事务操作,只要有一个不成功就需要回滚。
以上是业务逻辑,目前数据表也是按照上面的逻辑去建的五张表,请问这种业务是否有更好的处理方式?从表的设计上优化或者程序处理的优化。
请给个思路,谢谢!