比如A发了一篇微博,B转发了A的,C又转发了B的,此时A和B的转发数都+1了,这样子多重转发下来,我怎么设计数据库呢,求助啊
【1】数据库中字段最少需要有,微博ID,微博Path(文件存储微博内容),原文ID(非转发则为默认值),转发数,还有别的.......
【2】某次转发时有个点击事件,首先判断原文ID是否为默认值
【3】如果是默认值,则说明没有转发,,给当前字段转发数+1即可
【4】如果非默认值,则说明有转发,此时需要通过此微博ID查找原文ID,,,修改原文的转发数,,(假设此时原文ID为007)
【5】修改了原文的转发数,还没完,,还需要根据007搜索所有原文ID,并更新其转发数。(保证所有转发过该微博的全部修改。)
临时想的,,感觉我这个方法,,不管你如何转发,转发情况多复杂,,都能够很容易的应对,,
有问题还可以追问,,,,
大概思路是这样,
A发了一篇微博(001),转发数为0;
B转发了A的,这时候在001上,加加入B的引用,同时A的转发数+1,B的转发数为0;
C这时候又转发了B的,这时候001上,加入C的引用,同时B的转发数+1.
数据库里面每条微博设置两个字段 当前转发数CU 和转发来源FA 比如A(CU:1,FA:NULL) B是转发的A的 B(CU:0,FA:A)
那么C转发B的时候 你先去更新B的CU值 然后看有没有FA 如果有 那么更新 A的CU 一次类推 如果A也是转发的话
谢谢
首先,价格字段count(转发量)
给转发的URL上加个秘钥(比如:share = 时间戳 + ID),每次转发时,根据share查找相关数据库,并给count+1
设置parentId,原创微博,parentId为空,B转发后,B的parentId为A,C转发后parentId也为A,每次点击转发后,查出所有parentId为A的数据,
即从A处转发的微博,再加上A本身,所有的转发数加一。
谢谢楼上各位的解答,结合大家的思路,我现在的想法是:
1,多加一个字段,转发的时候把之前涉及到的id都存起来,页面不显示,要查转发详情之类的就用这个字段查
2,多加一张表,C转了B的文章,就存C转了B,C转了A两条记录
貌似可行的样子,不知道哪个更合适