数据库设计
在选择数据库时,我们可以选择关系型数据,或者非关系型数据,两者都有各自的好处,这里我们介绍的是使用关系型数据库——mysql
用户表
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
account_name |
varchar |
账号 |
否 |
account_password |
varchar |
密码 |
否 |
tel |
varchar |
联系电话 |
否 |
display_name |
varchar |
昵称 |
否 |
real_name |
varchar |
真实姓名 |
否 |
status |
int |
状态 |
否 |
gender |
varchar |
性别 |
否 |
avatar_url |
varchar |
头像 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user
(
id int auto_increment comment '编号'
primary key,
account_name varchar(200) null comment '账号',
account_password varchar(2000) null comment '密码',
tel varchar(50) null comment '联系电话',
display_name varchar(50) null comment '昵称',
real_name varchar(50) null comment '真实姓名',
status int default 1 null comment '状态',
gender varchar(10) null comment '性别',
avatar_url varchar(2000) null comment '头像',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '修改时间',
)
comment '用户';
词汇类型
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
display_type |
varchar |
类型名称 |
否 |
display_url |
varchar |
封面 |
否 |
status |
int |
状态 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_type
(
id int auto_increment comment '编号'
primary key,
display_type varchar(50) null comment '类型名称',
display_url varchar(2000) null comment '词典封面',
status int default 1 null comment '状态',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '词汇类型';
词汇
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
display_name |
varchar |
名称 |
否 |
type_id |
int |
所属类型 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_dictionary
(
id int auto_increment comment '编号'
primary key,
display_name varchar(200) null comment '英文',
type_id int null comment '类型',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '词汇表';
奖章
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
display_url |
varchar |
图片 |
否 |
display_name |
varchar |
名称 |
否 |
display_num |
int |
获取天数 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_award
(
id int auto_increment comment '编号'
primary key,
display_url varchar(2000) null comment '图片',
display_name varchar(200) null comment '名称',
display_num int null comment '获取天数',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '奖章';
用户选择词典
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
type_id |
int |
词典 |
否 |
is_use |
int |
是否进行中 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_type
(
id int auto_increment comment '编号'
primary key,
user_id int null comment '用户',
type_id int null comment '词典',
is_use int default 1 null comment '是否进行中',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '用户选择词典';
用户设置计划
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
display_num |
int |
数量 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_plan
(
id int auto_increment comment '编号'
primary key,
display_num int null comment '数量',
user_id int null comment '用户',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '用户设置计划';
用户打卡天数
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
display_num |
int |
天数 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_day
(
id int auto_increment comment '编号'
primary key,
user_id int null comment '用户',
display_num int null comment '天数',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '编辑时间'
)
comment '用户打卡天数';
用户奖章
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
award_id |
int |
奖章 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_award
(
id int auto_increment comment '编号'
primary key,
user_id int null comment '用户',
award_id int null comment '奖章',
create_at datetime null comment '获得时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '用户奖章';
成就点
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
display_score |
int |
分数 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_score
(
id int auto_increment
primary key,
user_id int null comment '用户',
display_score int default 0 null comment '分数',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '成就点';
用户背诵记录
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
dic_id |
int |
单词 |
否 |
display_name |
varchar |
单词 |
否 |
display_num |
int |
背诵次数 |
否 |
is_forget |
int |
是否不会 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_word
(
id int auto_increment comment '编号'
primary key,
user_id int null comment '用户',
dic_id int null comment '单词id',
display_name varchar(2000) null comment '单词',
display_num int default 1 null comment '背诵次数',
is_forget int default 0 null comment '是否不会',
create_at datetime default CURRENT_TIMESTAMP null comment '背诵时间',
modify_at datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '编辑时间'
)
comment '用户背诵';
用户浇水记录
字段 |
类型 |
字典解释 |
是否主键 |
id |
int |
编号 |
是 |
user_id |
int |
用户 |
否 |
display_score |
int |
分数 |
否 |
create_at |
datatime |
创建时间 |
否 |
modify_at |
datatime |
编辑时间 |
否 |
create table recite_user_score_record
(
id int auto_increment
primary key,
user_id int null comment '用户',
display_score int default 0 null comment '分数',
create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
modify_at datetime default CURRENT_TIMESTAMP null comment '编辑时间'
)
comment '浇水记录';