gpt4 book ai didi

mysql - 存储单向好友关系的紧凑方式?

转载 作者:行者123 更新时间:2023-11-29 06:05:58 25 4
gpt4 key购买 nike

我有一个mysql数据库。我有一张用户表。我想回答“一个用户是另一个用户的 friend 吗?”的问题。这些是单向的 friend 关系。我想我有两个选择,并且想要性能更高的解决方案:

1)保留一张 friend 关系表。两列:

username | friend_username
--------------------------
mary john
mary steve
mary kate
...

回答友谊问题只需选择两列与用户名 1 和 2 匹配的计数即可。

2)再次有两列的表格:

username | friends_serialized
-----------------------------
mary john,steve,kate,

因此“friends_serialized”列包含一个(逗号)分隔的字符串。如果我想知道玛丽是否是某人的 friend ,我可以这样做:

select count from xxx where username="mary" AND friends_serialized LIKE "%,steve,%"

(我不确定语法)。与第一次实现相比,这真的能给我带来什么好处吗?它至少更紧凑,当我需要向用户提供 friend 列表时,我可以将其放在单个列中读取,而不是选择所有匹配的列(如#1)。

我的问题:我正在运行一项游戏服务,用户可以在其中互相发送玩游戏的邀请。我想阻止陌生人发送非好友邀请。因此,我希望能够快速(紧凑地)查明向另一个用户发送邀请的用户是否实际上是共同的 friend 。

谢谢

最佳答案

绝对应该采用第一种方法。您的第二种方法甚至违反了关系数据库的第一范式(不在单个字段中存储多个值(在本例中为友谊)。

关于mysql - 存储单向好友关系的紧凑方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11481033/

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