gpt4 book ai didi

mysql - 如何使用 mysql 在 php 中创建 Facebook 之类的好友系统

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:18 24 4
gpt4 key购买 nike

我想创建一个像 facebook 这样的 friend 系统,比那更奇怪。当用户添加某人时,某人将收到通知,如果同意则他们将成为共同的 friend (在这种情况下,从字面上意思是双方都是 friend )或者如果某人不回应请求,他们将成为该人的粉丝有人。某人拒绝请求,他们将不再粉丝或 friend 。

如何在 PHP 和 MYSQL 中做到这一点。这是我的初步计划,但我不确定这是否是最好的方式。

MySQL 表

user_id (request made by) | friend_id (request point towards) | status
--------------------------------
123 | 452 | 'waiting'
525 | 123 | 'waiting'

表示用户 123 从 525 收到了 1 个好友请求,并向 452 发出了 1 个好友请求。这里的问题是我要如何获取用户 123 的好友列表?如果用户 123 接受 525 的请求,用户 452 接受 123 的请求。以及如何通过MYSQL查询获取粉丝列表..以及如何获取 friend 的 friend ?

最佳答案

用户123的好友列表:

SELECT u.* FROM users u INNER JOIN friend_requests f ON f.user_id = u.id WHERE f.user_id = 123 AND status = 'accepted';

用户 123 是这些用户的粉丝:

SELECT u.* FROM users u INNER JOIN friend_requests f ON f.user_id = u.id WHERE f.friend_id = 123 AND status = 'waiting';

不要忘记在状态列上添加索引。

另外,我不确定这样的 table 是否适合。

编辑:

我可能会选择这样的架构:

friend_request
request_from (foreign key to users.user_id)
request_to (foreign key to users.user_id)
resolved (boolean 1 or 0, default is 0)

friend_xref
friend (foreign key to users.user_id)
is_friend_with (foreign key to users_user_id)

fan_xref
user (foreign key to users.user_id)
is_fan_of (foreign key to users.user_id)

当有人发出好友请求时,向 friend_request 表添加新行。当请求接收者选择:

  • 接受请求:向 friend_xref 添加新行并在 friend_request 表中将 resolved 设置为 1
  • 拒绝请求:向 fan_xref 添加新行并在 friend_request 表中将 resolved 设置为 1

但最好在 mysql、database-design 或一些类似的标签下提问以获得最佳答案。

关于mysql - 如何使用 mysql 在 php 中创建 Facebook 之类的好友系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3385589/

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