重新设计了数据库,之前的数据库设计不是很合理。我们重新设计了数据库,提高了数据库的性能,由于作者部分可以重用,而且一本书或者一篇文章可能不只有一个作者,所以我们新建了一个作者表,然后每次,就先检测这个作者在作者表里是否存在,若存在则直接使用现成的,否则就插入新的作者,然后使用新的id进行关联,
新的表结构如下:
#### 用户:users id char(32) 唯一标识 UUID without - name varchar(10) 登录用户名 nickName varchar(10) 昵称 password char(64) 和id加盐 sha256 date timestamp 注册时间,精确到秒 role tinyint 角色 0普通用户 1高级用户 2管理员 3专家 4系统管理员 #### 页表:page id int(9) 唯一标示 articleId int(9) 所属文章的id page int(9) 页码 svg text svg部分 #### 文章表:article id int(9) 唯一标识 userId char(32) 发布者 status tinyint 状态 -2不可编辑 -1正在编辑 0未审核 1专家已审核  content text content部分 bookId int(9) 所属book的id pageCount int(9) 文章页多少 pageStart int(9) 文章开始页 name varchar(20) 文章名 date timestamp 发布时间 xml text xml内容 content text 内容 annotations text 注释内容 discontinues text 连续的页码 #### 书表:book id int(9) 唯一标识 userId char(32) 申请者 articleTotal int(9) 文章总数 unexamined int(9) 未审核文章 writtenDate char(10) 成书日期 name varchar(20) 书名 publishedDate char(10) 出版时间 date timestamp 申请时间 status int 状态 0 还有未被审核通过的文章 1全部文章已经审核 #### 申请表:application 储存申请成为高级用户的消息 id int(8) 唯一标识 userId char(32) 申请者 date timestamp 申请时间 #### 作者表: id int(9) 作者id name varchar(20) 作者本名 birth varchar(20) 作者生年 death varchar(20) 作者卒年 dynasty varchar(10) 作者朝代 lift varchar(100) 作者生平 ####article_author: articleId int(9) authorId int(9) name varchar(20) order tinyint ####book_author: articleId int(9) authorId int(9) name varchar(20) order tinyint