小编tcj*_*tcj的帖子

"追随者"和"追随者"的数据库设计?

亲爱的数据库专家/程序员:

我有一个带有用户信息的mysql表,例如

id      user_id         name etc.
1       userA            
2       userB   
3       userC
..      ..
..      ..
Run Code Online (Sandbox Code Playgroud)

我想创建一个像'跟随'其他用户的功​​能,如twitter.userA可以关注userB,或者userB可以关注userA,或者两者都可以互相关注.为此,我应该创建1个表,让我们说追随者

id      user_id     follower_id
1           userA       userB
2           userC       userA
3           userA       userC
4           userB       userC
5           userX       userA
Run Code Online (Sandbox Code Playgroud)

现在我想找到谁跟随userA.我是这样的:从追随者中选择*,其中user_id = userA这将选择userB和userC.多数民众赞成我所需要的.

现在我想找到,userA正在关注哪些人(例如在上表中,userA跟随userC和userX.然后我应该从follower_id = userA的关注者那里运行类似Select*的东西.

我的问题是,这个数据库设计是否适合这个问题(考虑到数据库冗余和优化?)或者可以采用比这更好的方法?谢谢.

sql database

30
推荐指数
3
解决办法
1万
查看次数

标签 统计

database ×1

sql ×1