mysql创建用户表_MySQL 创建用户表和好友表

本文介绍了如何在MySQL中创建用户表和好友表,用于即时通讯应用的用户管理和好友关系管理。包括用户表(userTable)和好友表(friendListTable)的字段设计,以及数据插入和查询示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2177b33e4d66dd2fbcfce53393a94744.png

人生如果错了方向,停止就是进步

最近想做一个即时通讯的Android demo,但是一直不知道如何处理用户和好友之间的表关系。在网上找了好久也没找到合适的。我本人很少接触数据库,对数据库语句比较差。

但是这只是自己demo,只能自己写。

创建数据库

好了,不多逼逼,现在开始创建一个数据库吧。

create database my_chat;

这一步相信大家都很明白,就是创建了一个my_chat的数据库

创建表

选择数据库

use my_chat;

创建用户表

create tableuserTable

(

userIdint auto_increment primary key, --用户ID自增

password varchar(100), --密码

userName varchar(100) unique, --用户名

birthYear smallint, --出生年

birthMonth smallint, --出生月

birthDay smallint, --出生日

gender smallint, --0 为女性, 1 为男

avatarId int, --头像Id

isOnline int, --0 为离线, 1 在线

signupTime varchar(100), --XXXX-XX-XX-XX-XX (year-month-day-hour-minute)注册日期

hometown varchar(100), --家乡

location varchar(100) --现居住地

);

添加用户表信息

insert intouserTable(password,userName,birthYear,birthMonth,birthDay,gender,avatarId,isOnline,signupTime,hometown,location)values("123456","test1",1997,09,23,1,0,1,"2020-09-23","广西/百色","广东珠海");insert intouserTable(password,userName,birthYear,birthMonth,birthDay,gender,avatarId,isOnline,signupTime,hometown,location)values("123456","test2",1998,03,26,0,1,1,"2020-09-23","广西/百色","广东珠海");

创建好友表

create tablefriendListTable

(

masterIdint, --此好友列表所属用户的id

friendId int, --好友Id

friendName varchar(100), --好友姓名

friendBirthYear smallint, --好友出生年

friendBirthMonth smallint, --好友出生月

friendBirthDay smallint, --好友出生日

friendGender smallint, --好友友性别

friendAvatarId int, --好友头像

friendIsOnline int, --好友在线状态

friendSignupTime varchar(100), --好友注册日期

friendHometown varchar(100), --好友家乡

friendLocation varchar(100), --好友现居住地

foreign key(masterId) references userTable(userId) on delete cascade --当用户信息修改或删除,该表同步修改

);

添加好友数据

insert intofriendListTable(masterId,friendId,friendName,friendBirthYear,friendBirthMonth,friendBirthDay,friendGender,friendAvatarId,friendIsOnline,friendSignupTime,friendHometown,friendLocation)values(1,2,"test2",1998,03,26,0,1,1,"2020-09-23","广西/百色","广东珠海");insert intofriendListTable(masterId,friendId,friendName,friendBirthYear,friendBirthMonth,friendBirthDay,friendGender,friendAvatarId,friendIsOnline,friendSignupTime,friendHometown,friendLocation)values(2,1,"test1",1997,09,23,0,0,1,"2020-09-23","广西/百色","广东珠海");

获取所有好友

select * from friendListTable where masterId=2;

获取所有在线好友

select * from friendListTable where masterId=2 and friendIsOnline=1;

获取所有离线好友

select * from friendListTable where masterId=? and friendIsOnline=0;

创建消息表

create tableunSendMsgs

(

senderIdint,

receiverIdint,

msgtext,

_datetime datetime,

typeint)

添加消息数据

insert into unSendMsgs (senderId,receiverId,msg,_datetime,type) values(1,2,"这是n一条测试消息",now(),1);insert into unSendMsgs (senderId,receiverId,msg,_datetime,type) values(2,1,"收到",now(),0);insert into unSendMsgs (senderId,receiverId,msg,_datetime,type) values(1,3,"四号是个大撒比",now(),0);insert into unSendMsgs (senderId,receiverId,msg,_datetime,type) values(3,1,"三号明白",now(),1);insert into unSendMsgs (senderId,receiverId,msg,_datetime,type) values(1,3,"over over",now(),0);

查询一号和三号互相发送的消息

select * from unSendMsgs where senderId=1 and receiverId=3 or senderId=3 and receiverId=1 order by _datetime asc;

结果如下

+----------+------------+-----------------------+---------------------+------+

| senderId | receiverId | msg | _datetime | type |

+----------+------------+-----------------------+---------------------+------+

| 1 | 3 | 四号是个大撒比 | 2020-09-20 12:01:14 | 0 |

| 3 | 1 | 三号明白 | 2020-09-20 12:01:36 | 1 |

| 1 | 3 | over over | 2020-09-20 12:01:51 | 0 |

+----------+------------+-----------------------+---------------------+------+

好了,关于用户表和好友表哦以及消息表的关系就如上,日后可能会继续更新,从0搭建即时通讯demo,喜欢的可以点个赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值