大家各抒己意,讨论出个高效的数据库设计方案好吗?---实现好友功能
小弟不才,先抛砖引玉:
1,一个friend表,列:firendId(FK), UserAId, UserBId
2,一个friendApply表, 列Id(FK), UserAId,UserBId
如果一个UserId = 10 的用户上线,
点击 "查看我的好友 ":
select UserBId form friend
where UserId = UserAId
点击 "等待通过的好友 ":
select UserBId form friendApply
where UserId = UserAId
点击 "删除该好友 "
delete friend
where UserId = UserAId
.......
不过这样做应该是效率很低的吧,每一次操作都要在friend表里检索....
------解决方案--------------------
每一次操作都要在friend表里检索效率为什么会低呀,不是蛮好的吗。
不过个人觉得不需要friend表和friendApply表分开,可以只用一个表,加一个Status栏位区分,这样如果申请成功,只要Update一下Status栏位就可以了,不用在friendApply表Delete,再在friend表Insert。