我研究了一下,记事狗微博开源系统,发现他分为两个表。
一个是粉丝表,一个是关注表。
比如粉丝表 a关注了b,关注了c。数据是这样的
uid touid
a b
a c
关注表的数据,也是一模一样。
我搞不懂为啥分成两个表,而且两个表的数据结构都差不多,这样不会造成数据冗余吗?要说速度上的快,每个表都是2条数据,不少不多。看不懂哪里提高了速度。
我研究了一下,记事狗微博开源系统,发现他分为两个表。
一个是粉丝表,一个是关注表。
比如粉丝表 a关注了b,关注了c。数据是这样的
uid touid
a b
a c
关注表的数据,也是一模一样。
我搞不懂为啥分成两个表,而且两个表的数据结构都差不多,这样不会造成数据冗余吗?要说速度上的快,每个表都是2条数据,不少不多。看不懂哪里提高了速度。
同 @vayn ,一张表足矣。关注和被关注都是同一种相对关系,只是对象不同而已,一张表上就能表示。
获取c的关注
SELECT touid FROM follow WHERE uid = 'c'
获取c的粉丝
SELECT uid FROM follow WHERE touid = 'c'
另外,随便吐槽几句,切勿当真。一、优化早死的快;二、记事狗的程序也没写到那种让人膜拜的程度,不看也罢。