//user:
id
name
password

how to properly make friends system?how should look table friends?

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


例如点?

要么

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

etc



谢谢

最佳答案

这些类型的表称为关系表或关联表。

由2个外键构成的表可提供多对多关系。您的最后一个示例正是您要寻找的。那些用逗号分隔的东西是最差的做法!

编辑:一些其他策略!

您想同时获取“ isFriendOf”(用户在您的列“ FRIENDS”中)和“ hasFriend”(用户在您的列“ USERID”中)并进行比较。

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


更多细节? ; D

关于php - mysql的 friend 系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5857390/

10-10 10:56