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