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

文章目录

  • 用户表
  • 标签表
  • 队伍表
  • 用户队伍表
  • 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_account
        unique (user_account)
)
    charset = utf8mb3
    row_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 = InnoDB
  AUTO_INCREMENT = 1
  CHARACTER SET = utf8
  COLLATE = utf8_general_ci
  ROW_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 = InnoDB
  AUTO_INCREMENT = 11
  CHARACTER SET = utf8mb4
  COLLATE = 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 = InnoDB
  AUTO_INCREMENT = 16
  CHARACTER SET = utf8
  COLLATE = utf8_general_ci COMMENT = '用户队伍关系'
  ROW_FORMAT = COMPACT;

SET FOREIGN_KEY_CHECKS = 1;

sql语言分类(题外话)

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

待更新…

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/570825.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LoRA: 大模型的低秩适配

笔记整理:陈一林,东南大学硕士,研究方向为不确定知识图谱规则学习 链接:https://arxiv.org/abs/2106.09685 1、动机 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练,然后对特定任务或领域进行适应性…

Go语言中通过数据对齐降低内存消耗和提升性能

数据对齐是一种安排数据分配方式以加速 CPU 访问内存的方法。 不了解这个概念会导致额外的内存消耗甚至性能下降。 要了解数据对齐的工作原理,让我们首先讨论没有它会发生什么。假设我们分配两个变量,一个 int32 类型的 (32 B) 和…

【上海大学计算机组成原理实验报告】四、指令系统实验

一、实验目的 了解指令结构、PC寄存器的功能和指令系统的基本工作原理。 学习设计指令的方法。 二、实验原理 根据实验指导书的相关内容,对于部分使用频率很高,且只用几条微指令即可完成的简单操作,可以把这部分简单操作的微指令序列固定下…

安装esxi 7 对硬件资源的需求

安装VMware vSphere ESXi 7.0 虚拟化平台对硬件资源的基本需求如下: 处理器: 必须是64位x86架构的CPU。至少需要两个物理核心(不过对于生产环境,建议更多的核心数以支持更多虚拟机并保证性能)。支持并启用硬件辅助虚拟…

SpringMvc(2)RequestMapping注解

RequestMapping注解 1 、RequestMapping的作用2、RequestMapping的出现位置3、类上与方法上结合使用4、RequestMapping注解的value属性4.1 value属性的使用4.2 Ant风格的value4.3 value中的占位符(重点) 5、RequestMapping注解的method属性5.2衍生Mappin…

k8s集群CD工具-ArgoCD

ArgoCD是什么 Argo CD 是 Kubernetes 的声明式 GitOps 持续交付工具。应用程序定义、配置和环境应该是声明性的和版本控制的。应用程序部署和生命周期管理应该是自动化的、可审计的且易于理解。 官方文档 CD工作流(无ArgoCD) 假设有一个微服务应用程序…

<计算机网络自顶向下>

在计算机网络中,网络层包括数据平面和控制平面,它们分别负责网络数据转发和网络路由控制。以下是它们之间的区别: 数据平面(Data Plane): 数据平面负责实际的数据传输和转发,它处理网络中的数据…

AI-数学-高中-40法向量求法

原作者视频:【空间向量】【考点精华】3法向量求法稳固(基础)_哔哩哔哩_bilibili 注意:法向量对长度没有限制,求法向量时,可以假设法向量z为任意一个取非0的值。 示例1: 示例2:

Transformer - 特征预处理

Transformer - 特征预处理 flyfish 原始数据 train_data.values [[ 5.827 2.009 1.599 0.462 4.203 1.34 30.531][ 5.76 2.076 1.492 0.426 4.264 1.401 30.46 ][ 5.76 1.942 1.492 0.391 4.234 1.31 30.038][ 5.76 1.942 1.492 0.426 4.234 1.31…

AndroidStudio中虚拟机(AVD)无法启动,出现unable to locate adb错误

1.检查Android SDK Platform-Tools是否安装(个人是通过这个方法解决的) 首先通过File-Project Structure-Project SDK检查SDK有没有被选中 步骤:打开file -> settings ,搜索SDK 之后点击"-",在点击Apply进行安装 2.可能是驱动的问题 电脑…

牛客NC179 长度为 K 的重复字符子串【simple 哈希,滑动窗口 C++、Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/eced9a8a4b6c42b79c95ae5625e1d5fd 思路 哈希统计每个字符出现的次数。没在窗口内的字符要删除参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改&#xff0c…

python(一)

一、字面量 字面量:在代码中,被写下来的固定的值,称之为字面量。 Python中常用的有6种值(数据)的类型: 二、注释 注释的分类: 单行注释:以#开头,#右边的所有文字当作说明,而不是真正要执行的程序&#…

2024新算法爱情进化算法(LEA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验

简介: 2024新算法爱情进化算法(LEA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验。 无人机三维路径规划的重要意义在于确保飞行安全、优化飞行路线以节省时间和能源消耗,并使无人机能够适应复杂环…

多模态模型

转换器成功作为构建语言模型的一种方法,促使 AI 研究人员考虑同样的方法是否对图像数据也有效。 研究结果是开发多模态模型,其中模型使用大量带有描述文字的图像进行训练,没有固定的标签。 图像编码器基于像素值从图像中提取特征,…

C++笔记:类和对象(一)->封装

类和对象 认识类和对象 先来回忆一下C语言中的类型和变量,类型就像是定义了数据的规则,而变量则是根据这些规则来实际存储数据的容器。类是我们自己定义的一种数据类型,而对象则是这种数据类型的一个具体实例。类就可以理解为类型&#xff0c…

vue2知识点————(父子通信)

vue2的知识点,更多前端知识在主页,还有其他知识会持续更新 vue组件 在Vue.js 2.x中,父子组件之间的通信是非常常见的情况,Vue提供了多种方法来实现这种通信。 Props 父向子通信 Props 是父组件向子组件传递数据的一种方式。通过…

Java的八大基本数据类型和 println 的介绍

前言 如果你有C语言的基础,这部分内容就会很简单,但是会有所不同~~ 这是我将要提到的八大基本数据类型: 注意,Java的数据类型是有符号的!!!和C语言不同,Java不存在无符号的数据。 整…

【电控笔记5.8】数字滤波器设计流程频域特性

数字滤波器设计流程&频域特性 2HZ : w=2pi2=12.56 wc=2*pi*5; Ts=0.001; tf_lpf =

【行为型模式】解释器模式

一、解释器模式概述 解释器模式定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口…

设计模式——状态模式19

状态模式是一种行为设计模式, 允许一个对象在其内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式的核心是状态与行为绑定,不同的状态对应不同的行为。 设计模式,一定要敲代码理解 状态行为抽象 //在某种状态下&…