两个相互引用的表

误会

我正在尝试创建一个简单的社交网络应用程序,其中包含有关用户及其朋友的记录。即 ID 为 1 的用户有 ID 为 2、3 的朋友。ID 为 2 的用户有 ID 为 1、3、4 等的朋友。现在我想获取有关该用户及其朋友的记录。

我创建了两个表

用户

user_id | firstname | surname | age 

朋友

user_id | friend_id

并记录如下内容:

用户

user_id | firstname | surname | age 
1       | Nikola    | Misic   | 22
2       | Stefan    | Ilic    | 23
3       | Dragan    | Jovic   | null

朋友

user_id  | friend_id
    1    |    2
    1    |    3
    2    |    1
    3    |    1
    3    |    4 

user_id 和friend_id 是外键,都指向user 表中的user_id。

关系是这样的: 在此处输入图片说明

我不确定这样的事情是否可能,我已经使用了 3 个表,两个表通过一个复合表连接。

阿戴森

正如您所描述的那样,建议的关系(一个表有两个外键指向另一个表中的列)是完全可能的,并且是需要做的相对常见的事情。

在查询用户的朋友方面,根据您在评论中所说的,我认为是:

select 
  u.* 
from 
  users u 
  inner join friends f 
    on u.user_id = f.friend_id 
where 
  f.user_id = ?

? 将包含来自的 userid 参数 $_GET["userid"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章