便签是我们学习和生活中经常用到的小工具,这个便签项目是对MySQL知识的简单应用
1、功能分析
1.1 基本功能
-
便签
- 创建便签
- 修改便签
- 删除便签
-
便签组
- 创建便签组
- 删除便签组
- 修改便签组
-
检索
- 便签时间搜索
- 变迁内容搜索
- 便签名称搜索
- 便签组名搜索
1.2 扩展功能
-
便签背景色
-
便签提醒
-
便签私密
-
便签备份
- 全部备份
- 便签组备份
- 便签备份
-
便签分享
2.模型设计
2.1便签模型
-
便签表
- 编号
- 标题
- 内容
- 是否私密
- 背景颜色
- 是否提醒
- 提醒时间
- 创建时间
- 修改时间
2.2 便签组模型
-
便签组
- 编号
- 组名称
- 创建时间
- 修改时间
2.3 便签分享模型
-
便签分享
- 编号
- 便签编号
- 分享备注
- 分享时间
3.数据库设计
创建便签数据库(memo),指定字符集为utf8,校验集为utf8_general_ci
drop database if exists memo;
create database if not exists memo default character set utf8 collate utf8_general_ci;
use memo;
创建便签组表并在便签组表中插入一条记录
drop table if exists memo_group;
create table if not exists memo_group (
id int primary key auto_increment comment '便签组编号',
name varchar(8) not null unique key comment '便签组名称',
created_time datetime not null comment '创建时间',
modify_time timestamp comment '修改时间'
)engine innodb;
insert into memo_group (name,created_time) values ('默认组',now());
创建便签表并在便签表中插入一条记录,同时将group_id字段(便签组编号)设置为外键,这个外键关联便签组表中的id字段(便签组编号)
drop table if exists memo_info;
create table if not exists memo_info(
id int primary key auto_increment comment '便签编号',
group_id int not null comment '便签组编号',
title varchar(32) not null comment '便签标题',
content varchar(1024) not null default '' comment '便签内容',
is_protected char(1) not null default '0' comment '是否私密,0:公开,1:私密',
background enum ('WHITE','RED','BLUE','GREEN') default 'WHITE' comment '背景颜色',
is_remind char(1) default '0' comment '是否提醒,0:不提醒,1:提醒',
created_time datetime not null comment '创建时间',
modify_time timestamp comment '修改时间'
)engine innodb;
alter table memo_info add constraint fk_memo_info foreign key (group_id) references memo_group(id);
insert into memo_info (id,group_id,title,content,created_time) values (1,1,'欢迎使用','这是使用手册',now());
创建便签分享表并在便签分享表中插入一条记录,同时将info_id字段()便签编号设置为外键,这个外键关联便签表中的id字段(便签编号)
drop table if exists memo_share;
create table if not exists memo_share(
id int primary key auto_increment comment '便签分享编号',
info_id int comment '便签编号',
mark varchar(32) not null default '' comment '分享备注',
share_time datetime not null comment '分享时间'
)engine innodb;
alter table memo_share add constraint fk_memo_share foreign key (info_id) references memo_info(id);
insert into memo_share (id,info_id,mark,share_time) values (1,1,'这个便签很有意思',now());
4.插入数据
向memo_group表中插入数据
向memo_info表中插入数据
向memo_share表中插入数据