重新設計了數據庫,之前的數據庫設計不是很合理。我們重新設計了數據庫,提高了數據庫的性能,由於作者部分可以重用,而且一本書或者一篇文章可能不只有一個作者,所以我們新建了一個作者表,然後每次,就先檢測這個作者在作者表裏是否存在,若存在則直接使用現成的,否則就插入新的作者,然後使用新的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