当前位置: 首页 > 面试题库 >

友谊数据库模式

孟英叡
2023-03-14
问题内容

我正在创建一个涉及可以成为朋友的用户的数据库模式,我想知道建模这些朋友建立友谊能力的最佳方法是什么。难道是它自己的表仅具有两列,每个列代表一个用户?谢谢!


问题答案:
create table 
friendship(
user bigint, 
friend bigint,
primary key(user, friend),
key(friend, user),
constraint `fk_user` foreign key (user) references user(id),
constraint `fk_friend` foreign key (friend) references user(id)
);

当用户1向用户2发送友谊请求时,

insert into friendship (user, friend) values (1,2);

如果用户2拒绝该请求,

delete from friendship where user = 1 and friend = 2;

如果用户2接受:

insert into friendship (user, friend) values (2,1);

然后,可以通过这种方式找到友谊:

select f1.* 
from friendship f1
inner join friendship f2 on f1.user = f2.friend and f1.friend = f2.user;

您可以使用最后一个查询进行查看,这将帮助您查询用户的朋友,甚至朋友的朋友。



 类似资料:
  • 本文向大家介绍C++ 友谊,包括了C++ 友谊的使用技巧和注意事项,需要的朋友参考一下 示例 该friend关键字是用来给其他类和函数访问类的private和protected成员,甚至通过他们的class`s范围之外定义。            

  • 问题内容: 在向我显示重复项之前,请注意,我已经在网站上进行搜索,发现了 一些 示例,但并非完全针对我的问题:) 在SQL中创建 友谊 表的最佳方法是什么,但是要确保每行都是唯一的,因为无论它们属于哪一列,相同的UserID和FriendID都不会被允许? 我有这个粗略的例子 并有2个外键,分别来自UserID和FriendID。 不过目前,我可以在用户之间插入 两次 Friendship ,从而

  • 表朋友:id、用户id、朋友id。 表用户配置文件:id、用户id、名字。。。 如何通过雄辩的ORM获得用户的朋友列表? 用户id:5 |朋友id:6 user_id: 6|friend_id5 类似问题: 与拉拉维尔的友谊系统:多对多关系 拉维尔 我无法理解是谁调用了getFriendsAttribute()方法。 以及如何做到这一点查询生成器。 谢谢

  • 问题内容: 我正在尝试与Laravel创建一个友谊系统(我从它开始),但是我被各种关系所困扰。事情是这样的:有一个表Users和一个表Friends,其中包含以下列: 它看起来像“多对多”,所以这是我在User类上设置的: 但是当我尝试一个: 我有这个错误: 我想获取用户好友列表,无论用户发送邀请还是收到邀请都无所谓。因此,用户可以根据user_id或friend_id,然后根据该列检索其他用户的

  • 问题内容: 我正在编写一个友谊系统,它有两个表。 成员 ID 用户名 密码 朋友们 ID 用户身份 friend_id 状态 假设我想要一个可以选择成员$ userId的朋友ID的查询,如何在一个查询中做到这一点? 我找到了一个解决方案,可以进行2次查询。拳头选择朋友在哪里,第二个选择朋友在哪里,然后将它们混合成一个数组。如果没有其他解决方案,我将使用它。 请对SQL结构和查询有任何想法吗? 问题

  • 若要开始使用服务器对象,你应该创建并打开一个连接。如果服务器中没有任何对象,你需要创建一个新的数据库或/和一个新的模式。 创建一个新的数据库 在导航窗格中,右击连接并选择“新建数据库”。 在弹出的窗口中输入数据库的属性。 编辑一个现有的数据库 在导航窗格中,右击数据库并选择“编辑数据库”。 在弹出的窗口中编辑数据库的属性。 创建一个新的模式 在导航窗格中,右击数据库并选择“新建模式”。 在弹出的窗