sql server 資料庫設計《機房重構》

2021-07-09 19:06:18 字數 2718 閱讀 4924

開始機房重構了,不自己設計乙個資料庫怎麼好意思說自己是在重構機房呢?而且原資料庫本身就有很多瑕疵,不符合資料庫的規範,今天我們就根據資料庫三正規化,來設計屬於我們自己的一版資料庫。

本次的資料庫是為了服務於我們的機房收費系統,機房收費系統大致的要求是什麼呢?看圖:

這是我們機房收費系統的主要的功能,這涉及到許多需要儲存成表的資料。接下來看能產生表資料的圖:

這其中,能生成6個記錄表,還有乙個使用者表,乙個賬單表,乙個卡表,還有乙個儲存基礎資料的表,所以在我的設計中,共用到了10張表。

在之前的原資料庫表中,卡和學生是一張表的,接下來我們說,為什麼把它們分開了。

資料抽象實體:學生、卡、上下機記錄、退卡記錄、充值記錄、使用者、值班教師、工作記錄、賬單、基礎資料表。

下面這張圖是我的資料庫實體聯絡圖,也就是我們常說的er圖:

er圖中沒有畫屬性,在下面的實體設計中會有體現,這張圖中,沒有m比n的關係,所以生成的表也就是圖中所有的實體,共10個。

學生(學號,姓名,年齡,性別,系別,專業,年級,班級,備註)

t_students(studentno,studentname,age,***,department,major,grade,class,explain)

卡(卡號,學號,卡名,註冊日期,餘額,型別,狀態)

t_cards(cardno,studentno,cardname,registerdate,cash,type,status)

上下機記錄(卡號,卡名,機器名,上機日期,上機時間,下機日期,下機時間,消費時間,消費金額,狀態)

t_onoffline(cardno,cardname,computer,ondate,ontime,offdate,offtime,consumetime,consumecash,status)

退卡記錄(卡號,卡名,退卡金額,退卡日期,退卡時間,狀態,操作者)

t_backcard(cardno,cardname,backcash,backdate,backtime,status,head)

充值記錄(卡號,卡名,充值金額,充值日期,充值時間,狀態,操作者)

t_recharge(cardno,cardname,addmoney,chargedate,chargetime,status,head)

使用者(使用者名稱,密碼,使用者級別,狀態,開戶人)

t_users(userid,password,level,status,head)

值班教師(使用者名稱,機器號,級別,登入日期,登入時間)

t_teacher(userid,computer,level,logindate,logintime)

工作記錄(使用者名稱,登入日期,登入時間,退出時間,機器名,狀態)

t_worklog(userid,logindate,logintime,exittime,computer,status)

賬單(註冊金額,充值金額,上機消費金額,退卡金額,盈利,結賬日期,結賬時間,操作者)

t_check(registercash,rechargecash,consumecash,backcash,profit,checkdate,checktime,head)

基礎資料(固定使用者費用,臨時使用者費用,累加時間,準備時間,最低消費,修改日期,修改時間,操作者)

t_basicdata(rate,tmprate,unittime,preparetime,limitcash,modiffydate,modiffytime,head)

物理設計階段就是根據欄位的型別,分配合理的資料型別。由於比較懶,就貼出資料庫的實體圖好啦:

學生

上下機記錄

退卡記錄

充值記錄

使用者

值班教師

工作記錄

賬單基礎資料

對於資料庫設計,這只是初版,這個版本並不是最終的,因為還有好多可以優化的地方等待我去發現。

對於字段型別的分配,可以參考下乙個部落格:資料型別。

SQL Server 資料庫設計

一 資料庫設計的必要性 在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理 不恰當,那麼資料庫的維護 執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。二 什麼...

SQL Server 資料庫設計

一 資料庫設計的必要性 在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理 不恰當,那麼資料庫的維護 執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。二 什麼...

SQL Server 資料庫設計

一 資料庫設計的必要性 在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理 不恰當,那麼資料庫的維護 執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。二 什麼...