gpt4 book ai didi

mysql - 跨两个 mysql 表设计 "Friend"关系

转载 作者:行者123 更新时间:2023-11-29 04:23:03 24 4
gpt4 key购买 nike

我有用户表和一个连接表来记录用户之间的“友谊”。我有一个关于如何记录“友谊”关系的问题。

User Table
u_ID | u_Name
-------------
1 | bob
2 | jill

假设鲍勃和吉尔是 friend 。连接表应该记录双向的友谊吗?

双向关系??

Friends Table
f_ID | u_ID1 | u_ID2
--------------------
1 | 1 | 2
2 | 2 | 1

或者一个方向关系就足够了??

Friends Table
f_ID | u_ID1 | u_ID2
--------------------
1 | 1 | 2

我的用例接近 Facebook 上的 friend 关系。如果我是你的 friend ,那么你就是我的 friend (尽管我们都需要认可这种关系)。发送。

最佳答案

由于 friend 关系总是双向的,所以不能存储两行,而只能存储一行。

  1. 选项:

    您可以决定表中的第一个字段是发起友谊的字段。我会再添加两行:日期和确认。

  2. 选项

    在第一个字段中存储较低的 user_id,在第二个字段中存储较高的 user_id。这允许您定义 unique index (field1, field2)和一个 constraint field1 < field2 .这样你就加强了友谊关系的单一性。

    另一方面,您需要一个附加字段来存储谁发起了友谊(使用 0/1,而不是 user_id)

关于mysql - 跨两个 mysql 表设计 "Friend"关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com