我們組的項目是基於深度學習時間序列預測系統,其用戶部分需要存儲用戶基本信息、用戶安全信息、用戶詳細信息三個部分。模型部分需要存儲模型信息、接口信息、數據集信息三個部分。
- 用戶基礎信息表
本表包含用戶名、手機號碼、郵箱、登錄密碼、用戶狀態等字段,是用戶在注冊階段時完善的表。其中用戶手機號為主鍵,作為用戶的唯一標志。
- 用戶安裝設置表
在用戶無法使用短信快捷重置密碼或無法使用郵箱找回密碼等情況下,我們為用戶提供了通過密保答案來重置密碼的功能,這就要求用戶在注冊后,主動完善密保問題和密保答案,完善該表,從而為找回密碼提供新的方式。其中用戶手機號碼為本表主鍵,同時也繼承自用戶基本信息表。
- 用戶居住地址表
該表為用戶注冊后自主完善的表,第一版的數據庫在設計中直接將國家、省份、城市、地區都存放在了地址表中,在數據庫評審中邊老師提示我們可以將他們都設為外鍵,以繼承的關系存放,這樣可以讓數據(國家、省份、城市、地區)的存儲結構更加清晰。
- 用戶資料表
用戶資料表中包括了昵稱、性別、生日、自定義頭像(上傳至服務器中存儲的地址)等用戶資料,由用戶在注冊后自行完善。其中教育程度設計為下拉框,用1-5表示“初中及以下”、“高中”、“本科”、“碩士”、“博士及以上”5個選項。性別同樣設計為下拉框,定義為boolean型,0女1男,默認為女。
- 模型信息表
一個用戶可以對應一個或多個模型,但一個模型只對應一個用戶。模型信息中包含接口ID和數據集編號,因此需要繼承於數據集表和接口信息表。
- 數據集表
數據集為用戶上傳至服務器中需要進行訓練的數據,這里保存的是數據存儲的地址。一個數據集表對應一個或多個模型,但一個模型只對應一個用戶。數據集表中不僅保存其用在哪個模型中,也保存了上傳的用戶。因此,一個用戶可上傳一個或多個數據集,而一個數據集只對應一個用戶。
- 接口信息表
接口信息表存儲的是模型訓練后傳給用戶的接口。
應用數據庫設計的范式理論對初始關系模型進行優化。數據庫設計的三大范式如下:
第一范式:每一個分類必須是一個不可分的數據項。屬性不可再分,確保每列的原子性。
第二范式:要求每個表只描述一件事情,每條記錄有唯一標識列。
第三范式:數據庫表中不包含已在其它表中已包含的非主關鍵字信息。
數據庫運行與維護的主要任務包括:
A、維護數據庫的安全性與完整性
B、監測並改善數據庫性能
C、重新組織和構造數據庫
總結:項目數據庫的設計時我們項目開始設計的基礎,所以我們小組花了大量時間根據需求不斷改進我們的數據庫表,特別是表的主鍵選擇上經過了多次討論才最終定下來。通過數據庫設計這個環節,使我進一步理解和運用了數據庫這門課程所講的知識,將抽象理論轉換為具象,加深了學習的印象。還有一點就是,突然發現這學期的課程及實驗安排的好有道理,並且項目進度和課程進度剛好吻合,溜啊,非常喜歡這種緊密相關的學習,原理老師安排的是在太有心了啊,手動比心^_^。唉,雖然如此,自己的數據庫考試考的不理想唉,害得繼續加深學習,多實踐,不要停留在書本理論知識之上,畢竟這是一門真正的技術,加油