帮助处理用户关系

Posted

技术标签:

【中文标题】帮助处理用户关系【英文标题】:help with relationship of users 【发布时间】:2011-07-28 07:21:56 【问题描述】:

大家又被我的表上的 sql 布局困住了,我似乎无法理解如何做到这一点。

我需要用户能够与其他用户成为朋友(用户保存在用户表中)我试图创建一个“朋友”表,以便他们可以相互关联。

我需要与FriendID一起存储的UserID,UserID是当前用户的,FriendID与朋友的UserID相关。啊啊啊好混乱。

即使再次谈论它,我也会迷路,基本上就像我编写代码的方式一样,我需要 FriendID 与用户表的 UserID 相关联,这样我就可以找到我之后的人,这样我就可以在当前显示凭据“ UserID”页面,但我还需要一些方法来找出所有当前的 UserIDs 朋友

UserID 与所有当前好友相关 (FriendID) FriendID 与 User 表中的一个用户(UserID)相关

到目前为止,我只有这个。如何将 FriendID 引用回 UserID?如果那样的话。

【问题讨论】:

【参考方案1】:

这实际上是 UserA(初始用户)和 UserB(目标用户)之间的多对多关系,您需要一个 IsFriendsWith 表来关联两者,例如

User
-------------
UserID [PK]
Name
etc,

IsFriendsWith
-------------
InitiatingUserID [FK]
TargetUserID [FK]

因此,您可以使用它来查找(对于任何发起用户)他们的朋友,以及任何与他们交朋友的目标用户。

编辑 - 我是 SQL Server 用户,但以下查询(或类似的查询)应该在 mysql 中工作,以便列出 ID 在参数 @UserID 中定义的用户的所有朋友

SELECT u2.Name FROM Users u1
    INNER JOIN IsFriendsWith ifw ON u1.UserID = ifw.InitiatingUserID
    INNER JOIN Users u2 ON u2.UserID = ifw.TargetUserID
    WHERE u1.UserID = @UserID

【讨论】:

我认为这行不通,比如 1(发起)是 2(目标)的朋友,如何在发起人员页面上显示目标 2 的详细信息?什么是 sq 命令呢? 我不是 mysql 用户,所以我的示例 SQL 可能无法按原样工作,但希望为您指明正确的方向。请参阅编辑后的答案。 用那个 sql 语句把我搞糊涂了 我可以引导你到我的这个帖子***.com/questions/5524627/help-with-sql-select-syntax也许你能帮忙吗? 好的,稍等片刻。您知道 INNER JOIN 是什么意思,还是因为用户两次加入而造成的混淆?

以上是关于帮助处理用户关系的主要内容,如果未能解决你的问题,请参考以下文章

大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践 @自然语言处理系列

马哈鱼数据血缘关系分析工具用户功能介绍

使用 LDAP 身份验证处理用户关系 [关闭]

如何在批处理文件中识别用户输入帮助(/?)

表,字段处理详细, 创建用户 ,用户管理 表关系

git github gitlab之间是啥关系