重新设计了数据库,之前的数据库设计不是很合理。我们重新设计了数据库,提高了数据库的性能,由于作者部分可以重用,而且一本书或者一篇文章可能不只有一个作者,所以我们新建了一个作者表,然后每次,就先检测这个作者在作者表里是否存在,若存在则直接使用现成的,否则就插入新的作者,然后使用新的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专家已审核 ![avatar](http://wangjingxin.top:65530/article.png) 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