业务很简单:
组建团队,用户可被拉入多个团队,每次拉入或移出的时候有消息通知;
数据库设计:
team{id,uids}
user{id,tids}
msg{id,uid,title,content,status}
实际操作:
新建一个团队,team表更新一条数据,user表/msg表同时更新几条数据
最大的坑如下:
team表更新后,user表/msg表需要更新多条数据,循环里面更新数据库会影响性能;
目前利用mysql的WHEN THEN语句绕过了这个坑,不知道大家是怎么设计这种功能的;
另,利用redis把消息记录到硬盘而后再存数据库会不会提高性能呢?
更新下,出现的问题刚刚有人说没做过一下看不明白,我描述下当前的实现思路让大家更直观点:
提交数据更新(tid=7) =》
判断team是否有user变动 =》
若有,比较提交过来的n_uids(3,4,5)和原uids(1,2,3),结果放在c_uids =》
这里还要做比较,得出增(4,5)/删的uid(1,2) =》
循环c_uid,更新user表(1,2删除tids里面的7;4,5增加7)、msg表(...)
一楼给出的建议非常值得去尝试下,在此感谢各位的回答。
======================
按一楼的表设计,
user{id}
group{id,uids,tid}
team{id}
增删倒是没什么问题
但是读user所在的team就麻烦了。。。。还是存在问题
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…