AiApe問答機械人專案資料庫設計說明書

2022-09-09 05:45:08 字數 2285 閱讀 5198

簡單對上述要求進行抽象,可以得到如下e-r圖

其中使用者-題目使用者-回答關係並不是簡單的一對多關係,當原先的使用者被刪除後,題目和回答應該可以單獨存在,即對應0個使用者。

為其新增便於查詢的xid屬性並標記主鍵後得到如下e-r圖

使用者(uid,email,密碼,暱稱,許可權)

題目(qid,標題,建立者uid,詳細,最佳答案的aid,建立時間,修改時間)

回答(aid,所屬問題qid,內容,建立者uid,建立時間,修改時間)

標籤(tid,名稱,描述)

題目-標籤(tid,qid)

【beta新增】點讚(uid,aid)

以上所有關係中除了最後乙個都只有第乙個屬性是鍵。題目-標籤關係中,所有屬性共同構成主鍵,每乙個主屬性都是外來鍵。

屬性名描述

基礎型別

額外約束

uid使用者id

int主鍵,由資料庫負責維護,遞增

email

使用者郵箱

varchar(254)

備用鍵,不能重複,不能更改

bcrypt

密文密碼

char(len)

由於目前沒有確定具體加密演算法,所以資料庫密碼長度暫時未確定

name

暱稱varchar(18)

備用鍵,不能重複,2~18個字元

auth

許可權int

1表示使用者,2表示管理員

屬性名描述

基礎型別

額外約束

qid題目id

int主鍵,由資料庫負責維護,遞增

title

標題varchar(150)

不超過150個字元

creater

建立使用者

int可空外來鍵,應當是user關係中存在的uid,當對應的使用者被刪除時,應由觸發器將此項置為空

remarks

詳細資訊

varchar(max)

best

最佳答案

int可空外來鍵,應當是answer關係中存在的aid,且該aid對應的回答的qid必須與本元組相同,當對應回答刪除時,應由觸發器將此項值為空

createtime

建立時間

date

建立此項的時間,由資料庫維護,不可更改

modifytime

修改時間

date

每次修改此項應當更新,由資料庫維護

屬性名描述

基礎型別

額外約束

aid回答id

int主鍵,由資料庫負責維護,遞增

qid所屬問題

int不可空外來鍵,當qid對應的問題刪除後,此項也應當由觸發器刪除

content

回答內容

varvhar(max)

creater

建立使用者

int可空外來鍵,應當是user關係中存在的uid,當對應的使用者被刪除時,應由觸發器將此項置為空

createtime

建立時間

date

建立此項的時間,由資料庫維護,不可更改

modifytime

修改時間

date

每次修改此項應當更新,由資料庫維護

屬性名描述

基礎型別

額外約束

tid標籤id

int主鍵,由資料庫負責維護,遞增

name

名字varchar(16)

不超過16個字元

desc

詳細描述

varchar(max)

屬性名描述

基礎型別

額外約束

qid問題id

int外來鍵,當qid對應的問題刪除後,此項也應當由觸發器刪除

tid標籤id

int外來鍵,當tid對應的標籤刪除後,此項也應當由觸發器刪除

屬性名描述

基礎型別

額外約束

uid使用者id

int外來鍵,當uid對應的使用者刪除後,此項也應當由觸發器刪除

aid回答id

int外來鍵,當aid對應的回答刪除後,此項也應當由觸發器刪除

建立專案資料庫

建立專案資料庫 開發工具與關鍵技術 當我們分析完專案的需求,了解專案的大概流程和專案的需求之後,我們就可以開始資料庫的設計了,設計專案資料庫是乙個專案裡面非常重要的乙個環節,資料庫中建立的資料結構的種類,以及在資料410物件之間建立的複雜關係是資料庫系統效率的重要決定因素。乙個良好的資料庫設計可以節...

部落格專案 資料庫篇

使用者表 create table lblog user id int 11 not null auto increment comment 使用者表id username varchar 50 not null comment 使用者名稱 password varchar 50 not null ...

專案 資料庫設計經驗

做任何事情,要統一,有序。5s中的一些概念也可以借鑑一下。做專案,資料庫是很重要的一塊,現在是邊學邊總結。一 資料庫表的命名 例如 misqc01m 代表是主表 misqc01d1 代表第乙個明細表 經過對名字的整理,使系統有條理,清潔,使用的時候快速。二 新增常用表字段 create table ...