gpt4 book ai didi

php - PHP/MySQL 中的好友系统?

转载 作者:行者123 更新时间:2023-11-29 01:09:10 25 4
gpt4 key购买 nike

我正在尝试编写一个像这样工作的 friend 系统:

  1. 用户A向用户B发送好友请求。
  2. 用户B接受用户A的好友请求。
  3. 用户 A 和 B 现在是 friend 。

这是我的数据库结构:

CREATE TABLE IF NOT EXISTS `users` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(16) NOT NULL,  `password` char(32) NOT NULL,  `email` varchar(80) NOT NULL,  `dname` varchar(24) NOT NULL,  `profile_img` varchar(255) NOT NULL DEFAULT '/images/default_user.png',  `created` int(11) NOT NULL,  `updated` int(11) NOT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `email` (`email`),  UNIQUE KEY `username` (`username`)) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
CREATE TABLE IF NOT EXISTS `friend_requests` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `user_a` int(11) NOT NULL DEFAULT '0',  `user_b` int(11) NOT NULL DEFAULT '0',  `viewed` tinyint(1) NOT NULL DEFAULT '0',  PRIMARY KEY (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
CREATE TABLE IF NOT EXISTS `friends` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `user_a` int(11) NOT NULL DEFAULT '0',  `user_b` int(11) NOT NULL DEFAULT '0',  `friend_type` int(3) NOT NULL DEFAULT '1',  `friends_since` int(11) NOT NULL DEFAULT '0',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

我可以使用“SELECT * FROM friends WHERE user_a = $userid OR user_b = $userID”列出用户的 friend ,但是我怎样才能获得数据,例如usernameprofile_imgusers 表?

最佳答案

我认为您有点过度思考(!)您的问题。

你可能只有一个 User table 和一个 Friendship table 。您的友谊表可能包含 UserID int, FriendID int, Created_at datetime, Confirmed_at datetime .<罢工>

<罢工>
select * from User
left outer join Friendship on User.ID = Friendship.UserID
left outer join User as Friend on Friendship.FriendID = Friend.ID
where User.ID = <some users ID>

<罢工> 编辑:我可能第一次自己就过度思考了 ;)

select * from Friendship
inner join User on Friendship.FriendID = User.ID
where Friendship.UserID = <some users ID>

这会让用户成为 friend ...(MSSQL 语法)

哦,我忘了。当Confirmed_atnull友谊请求尚未确认。

关于php - PHP/MySQL 中的好友系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151494/

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