伙伴匹配(后端)-- 数据库表设计

embedded/2024/9/23 6:38:48/

文章目录

  • 用户表
  • 标签表
  • 队伍表
  • 用户队伍表
  • sql语言分类(题外话)
  • 待更新...

在后端开发中,数据库表设计真的是非常重要的一环了,进入公司熟悉业务第一个要看的也是数据库的表,接下来就让我们看看本项目的数据库表有哪些吧(暂时)

用户表

基本上每个系统都要有的表,话不多说,直接上sql

-- ----------------------------
-- 用户表
-- ----------------------------
create table user
(id             bigint auto_increment comment 'id'primary key,username       varchar(255)                       null comment '用户昵称',user_password  varchar(512)                       not null comment '用户密码',user_account   varchar(255)                       null comment '账号',avatar_url     varchar(1024)                      null comment '用户头像',gender         tinyint                            null comment '性别 0-女 1-男 2-保密',profile        varchar(255)                       null,phone          varchar(128)                       null comment '手机号',email          varchar(512)                       null comment '邮箱',status         int      default 0                 null comment '用户状态,0为正常',role           int      default 0                 not null comment '用户角色 0-普通用户,1-管理员',friend_ids     varchar(255)                       null,tags           varchar(1024)                      null comment '标签列表',create_time    datetime default CURRENT_TIMESTAMP null comment '创建时间',update_time    datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',is_delete      tinyint  default 0                 not null comment '是否删除',check_password varchar(512)                       not null comment '确认密码',constraint uniIdx_accountunique (user_account)
)charset = utf8mb3row_format = DYNAMIC;

标签表

本项目定位“伙伴匹配”,用户直接会根据标签的相似程度来匹配,所以设计标签表

-- ----------------------------
-- 标签表
-- ----------------------------
DROP TABLE IF EXISTS `tag`;
CREATE TABLE `tag`
(`id`          bigint(20)                                              NOT NULL AUTO_INCREMENT COMMENT 'id',`tag_name`    varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签名称',`user_id`     bigint(20)                                              NULL     DEFAULT NULL COMMENT '上传用户id',`parent_id`   bigint(20)                                              NULL     DEFAULT NULL COMMENT '父标签id',`is_parent`   tinyint(4)                                              NOT NULL COMMENT '0-不是父标签,1-父标签',`create_time` datetime                                                NULL     DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime                                                NULL     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',`is_delete`   tinyint(4)                                              NOT NULL DEFAULT 0 COMMENT '是否删除',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uniIdx_tagName` (`tag_name`) USING BTREE,INDEX `Idx_userId` (`user_id`) USING BTREE
) ENGINE = InnoDBAUTO_INCREMENT = 1CHARACTER SET = utf8COLLATE = utf8_general_ciROW_FORMAT = DYNAMIC;

队伍表

用户之间可以进行组队,所以设置队伍表

-- ----------------------------
-- 队伍表
-- ----------------------------
DROP TABLE IF EXISTS `team`;
CREATE TABLE `team`
(`id`          bigint(20)                                                     NOT NULL AUTO_INCREMENT COMMENT 'id',`name`        varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci  NOT NULL COMMENT '队伍名称',`description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL     DEFAULT NULL COMMENT '描述',`cover_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci  NULL     DEFAULT NULL COMMENT '封面图片',`max_num`     int(11)                                                        NOT NULL DEFAULT 1 COMMENT '最大人数',`expire_time` datetime                                                       NULL     DEFAULT NULL COMMENT '过期时间',`user_id`     bigint(20)                                                     NULL     DEFAULT NULL COMMENT '用户id',`status`      int(11)                                                        NOT NULL DEFAULT 0 COMMENT '0 - 公开,1 - 私有,2 - 加密',`password`    varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci  NULL     DEFAULT NULL COMMENT '密码',`create_time` datetime                                                       NULL     DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime                                                       NULL     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`is_delete`   tinyint(4)                                                     NOT NULL DEFAULT 0 COMMENT '是否删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBAUTO_INCREMENT = 11CHARACTER SET = utf8mb4COLLATE = utf8mb4_general_ci COMMENT = '队伍'ROW_FORMAT = COMPACT;

用户队伍表

为什么要设计这样一个表呢?因为我们需要一个表来连接用户表和队伍表,来表示哪些用户加入了哪些队伍,加入时间等等

-- ----------------------------
-- 用户队伍表
-- ----------------------------
DROP TABLE IF EXISTS `user_team`;
CREATE TABLE `user_team`
(`id`          bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`user_id`     bigint(20) NULL     DEFAULT NULL COMMENT '用户id',`team_id`     bigint(20) NULL     DEFAULT NULL COMMENT '队伍id',`join_time`   datetime   NULL     DEFAULT NULL COMMENT '加入时间',`create_time` datetime   NULL     DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime   NULL     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`is_delete`   tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBAUTO_INCREMENT = 16CHARACTER SET = utf8COLLATE = utf8_general_ci COMMENT = '用户队伍关系'ROW_FORMAT = COMPACT;SET FOREIGN_KEY_CHECKS = 1;

sql语言分类(题外话)

DDL define 建表,操作表
DML manage 更新删除数据
DCL control 控制,权限
DQL query 查询

待更新…

其实还有这么老些表o(╥﹏╥)o,后面会项目的推进慢慢更新的!
在这里插入图片描述


http://www.ppmy.cn/embedded/13726.html

相关文章

李廉洋:4.24-4.25现货黄金,WTI原油区间震荡,走势分析。

黄金消息面分析:金银近日回调。随着伊朗方面淡化以色列最新反击,中东地区局势没有进一步发酵下,风险溢价下降金银出现较大幅度调整。由于近期高于预期的通胀数据,降息预期持续降温。昨日疲软的美国PMI以及以色列在加沙攻击的加剧支…

汇智知了堂晨会聚焦:NAS应用如何赋能网络安全实战

在近期汇智知了堂网络安全75班的晨会上,一场关于NAS应用的深入分享完美展开。学员们以饱满的热情投入到这场安全讨论中,共同探索网络安全的新天地。 此次分享会聚焦于NAS的应用,旨在帮助学员们更好地了解NAS的定义与功能,掌握其在…

flutter(学习日记篇-1)

windows配置开发环境等 1.下载sdk---------flutter官网 2.配置环境变量 ①在系统中找到环境变量的配置位置,在用户变量模块中选中变量为path的项进行编辑(没有path就新建),然后找到刚才下载的flutter的位置,点击目录…

YOLOv9改进策略 | 添加注意力篇 | TripletAttention三重注意力机制(附代码+机制原理+添加教程)

一、本文介绍 本文给大家带来的改进是Triplet Attention三重注意力机制。这个机制,它通过三个不同的视角来分析输入的数据,就好比三个人从不同的角度来观察同一幅画,然后共同决定哪些部分最值得注意。三重注意力机制的主要思想是在网络中引入…

tornado模板注入

这是我在做一道ctf题目当中遇到的,不太会,所以浅浅学习了一下,跟大家分享。 1.介绍 tornado是python当中的一个模板,因此这个漏洞是归属于SSTI(服务器模板漏洞),所谓的模板其实就是一种框架,p…

idea中打印日志不会乱码,但是部署到外部tomcat中乱码了。

问题:如图Tomcat乱码,而且启动时的系统日志不会乱码,webapp中的打印日志才乱码。 idea中的情况如下:正常中文展示。 问题分析:网上分析的原因是Tomcat配置的字符集和web应用的字符集不匹配,网上集中的解决…

SQL语法基础-其他函数V

SQL语法基础-其他函数V 一、数据类型转换函数二、系统信息函数三、条件表达式函数四、XML相关函数五、JSON函数(从Oracle 12c开始支持) 一、数据类型转换函数 这类函数用于将数据从一种类型转换为另一种类型,非常有用于数据清洗和准备阶段。…

Docker应用推荐个人服务器实用有趣的项目推荐

Wallabag:是一个开源的、自托管的文章阅读和保存工具。它允许你保存网页文章并进行离线阅读,去除广告和不必要的内容,以提供更好的阅读体验。Wallabag支持多种导入和导出格式,并提供了一些实用的功能,如标签、阅读列表…