用mysql的朋友系统

时间:2011-05-02 12:55:42

标签: php mysql system

//user:
id
name
password

如何正确交朋友系统? 怎么看桌上的朋友?

USERID | FRIENDID
user1id | user2id, user3id
user2id | user1id, user4id, user6id
user3id
user4id | user2id

例如点?

USERID | FRIENDIS
user1id | user2id
user1id | user3id
user2id | user1id
user2id | user4id

etc

? 感谢

1 个答案:

答案 0 :(得分:4)

这些表是命名关系或关联表。

一个由2个外键构成的表,提供多对多的关系。你的最后一个例子就是你正在寻找的。那些以逗号分隔的东西是最糟糕的做法!

编辑:一些额外的策略!

您希望同时获得“isFriendOf”(用户位于“FRIENDS”列中)和“hasFriend”(用户位于“USERID”列中)并比较这两者。

isFriendOf = "SELECT USERID FROM associationTable WHERE FRIEND LIKE 'userIamSearchingFor'";
hasFriend = "SELECT FRIEND FROM associationTable WHERE USERID LIKE 'userIamSearchingFor'";

更多细节? ; d