php - mysql好友系统

标签 php mysql system

//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好友系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5857390/

相关文章:

php - MySQL GROUP_CONCAT : Formatting the output

linux - 在 docker exec 命令中使用 '*'

ruby-on-rails - Ruby on Rails 身份验证指南

c - pthread 并在 C 中递归调用 execvp

php - 如何使用 php 使用 session 和文件 ID 来增加计数

php - 正则表达式匹配给定字符串的 3 个部分

mysql - 使用 Sqoop 从 HDFS 到 RDBMS - 创建表

php - Laravel 十进制列索引

php - 检查用户名是否已经存在不会显示正确答案

mysql - 分片和 ID 生成作为 instagram