gpt4 book ai didi

mysql - 我应该在 php 和 mysql 中将 friend 存储为 "strings"还是 "integers"?

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

我进退两难,不知道哪个更好。 (顺便说一句,我正在使用 php 和 mysql)

假设我正在开发一个社交社区网站。用户可以添加任意数量的 friend 。在我的数据库中,我有一个用户表,它存储用户的详细信息,包括用户的 friend 。我应该将用户的 friend 存储在:

字符串 => john;bryan;sam;paul;...;

整数 => 1;21;50;1779;30;...;

String 表示存储他们的用户名。整数表示存储他们的用户 ID。

哪个更好?

如果是string,那将是一个非常非常大的字符串(假设用户有400个 friend ,有些用户名特别长)

如果是id,如何在用户个人资料页面列出好友?获取一个长字符串(以分号分隔)中的 ID 列表,使用 explode 函数将其制成数组。然后用循环显示??不麻烦吗?还有别的办法吗?如果是,请显示一些示例代码..

或者通常情况下,你们如何将“ friend ”列表存储在用户表中?

最佳答案

不要将它们存储为以分号分隔的任何内容。将它们作为用户 ID 存储在查找表中。假设用户是#2。你可能有:

SourceUserID | FriendUserID
2 1
2 21
2 50
2 1779
2 30
1 // One of John's friends

然后为了显示好友列表,您查询此表并通过 SourceUserID = 2 对其进行限制,并与用户表连接以获取姓名。例如:

SELECT Name FROM SITE_USERS
INNER JOIN USER_FRIENDS ON SITE_USERS.ID = USER_FRIENDS.FriendUserID
WHERE SourceUser = ?

(或者无论您的参数化查询格式是什么;使用您正在显示其页面的用户的 ID 填充参数。)

关于mysql - 我应该在 php 和 mysql 中将 friend 存储为 "strings"还是 "integers"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/580896/

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