日期:2014-05-18  浏览次数:20457 次

[讨论]好友功能--数据库设计方案
大家各抒己意,讨论出个高效的数据库设计方案好吗?---实现好友功能

小弟不才,先抛砖引玉:

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。