文章目录
- 用户表
- 标签表
- 队伍表
- 用户队伍表
- 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,后面会项目的推进慢慢更新的!