zoukankan      html  css  js  c++  java
  • MySQL 创建用户表和好友表

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

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

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

    创建数据库

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

    create database my_chat;

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

    创建表

    选择数据库

    use my_chat;

    创建用户表

    create table userTable
    (
        userId int 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 into userTable(password,userName,birthYear,birthMonth,birthDay,gender,avatarId,isOnline,signupTime,hometown,location) 
    values("123456","test1",1997,09,23,1,0,1,"2020-09-23","广西/百色","广东珠海");
    
    insert into userTable(password,userName,birthYear,birthMonth,birthDay,gender,avatarId,isOnline,signupTime,hometown,location) 
    values("123456","test2",1998,03,26,0,1,1,"2020-09-23","广西/百色","广东珠海");

    创建好友表

    create table friendListTable
    (
        masterId int, -- 此好友列表所属用户的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 into friendListTable(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 into friendListTable(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 table unSendMsgs
    (
        senderId int,
        receiverId int,
        msg text,
        _datetime datetime,
        type int
    )

    添加消息数据

    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,喜欢的可以点个赞

  • 相关阅读:
    使用Gradle构建项目
    centos7配置IP地址
    安装docker报错问题
    使用Centos7 安装docker的步骤
    CentOS7安装步骤
    Mybatis使用 爬坑记录
    火锅蘸料自制
    mysql 几种索引的复习(温故而知新)
    java 内存泄漏 与 内存溢出
    内存泄漏排查
  • 原文地址:https://www.cnblogs.com/inthecloud/p/13699450.html
Copyright © 2011-2022 走看看