200分相送,求一个 关于朋友关系 的数据库的设计 up者有分
功能就象qq的加减朋友。
有这么一个user表:
id name
------------------------------
1 A
2 B
3 C
4 D
.......
有这么一个friend表:
user1 user2
--------------------------
A B
B A
A C
C A
B C
.......
他们可以互相加为好友。
例如:当A加B为好友,那么,B可以 1)拒绝、2)接受、3)接受并且加A为好友。
如果选1,那么他们(指A和B)就不是朋友了;在friend表不增加记录;
如果选2,那么B就是A的好友,而A不是B的好友;当然B还可以再加A为好友;在friend表增加一条记录:user1是A,user2是B;
如果选3,那么B不需要等A验证了,他们就互相是朋友关系了;在friend表增加两条记录:user1是A,user2是B;user1是B,user2是A。。
这样的话,如果user表有n个用户,如果他们都互相加为好友,
那么,friend表就有n*(n-1)条记录。
如果user表有10000个用户,那么friend表就有10000*(10000-1)=99990000条记录,这肯定不现实。
所以,请教各位,怎么设计 这种需求的关系 ???
谢谢。
原帖:
http://community.csdn.net/Expert/topic/5437/5437876.xml?temp=2.039737E-02
谢谢,帮顶也有分。