標籤:
前言
前一段時間要參加自考,要考《資料庫原理》,在其中也更加瞭解了好多資料庫的問題。比如,如何建立一個好的資料庫,怎麼建立資料庫。
圖一 資料庫建立架構
現在開始機房的重構,以前用的是師哥師姐設計的資料庫,現在發現自己也可以設計出來了,所以,按這步驟來自己設計一個機房收費系統的資料庫。
一、規劃
由於機房收費系統是第二遍做的,所以在總體規劃階段很容易看出系統在技術、經濟、效益、法律是可行的;目標就是要更好的搭配應用程式合理運行。
二、需求分析
這一階段是電腦人員(系統分析員)和使用者雙方共同收集資料庫所需要的資訊內容和使用者對處理的需求。並以需求說明書的形式確定下來,作為以後系統開發的指南和系統驗證的依據。
在機房收費系統中,分配了三種許可權的使用者。使用者可以實現不同的工能。
圖二 機房收費系統功能架構
三、概念設計
目標:反應使用者單位資訊需求的資料庫概念結構。
概念模式是獨立於電腦硬體結構,獨立於支援資料庫的DBMS。
機房收費系統的E-R圖
圖三 機房收費系統ER圖
我們通過ER圖就可以找到存在的實體,可以抽象成表。
四、邏輯設計
主要是把概念性模型轉換成DBMS能處理的邏輯模型。轉換過程中要對模型進行評價和效能測試,以便獲得較好的模式設計。
在機房收費系統中,我們可以把在概念設計中的ER圖轉換為我們的邏輯模型。
機房收費系統的關係模式:
1)使用者資訊(使用者編號、使用者姓名、層級、密碼、建立者)
2)基本資料(使用者編號、會員單價、普通單價、遞增時間、至少上機時間、準備時間、最少金額、編輯日期、編輯時間)
3)學生資訊(學號、使用者編號、學生姓名、性別、系別、年級、班級、備忘、註冊日期、註冊時間)
4)卡(卡號、使用者編號、卡狀態、卡類型、金額、是否結賬、註冊時間)
5)儲值(卡號、使用者編號、儲值金額、儲值日期)
6)上機情況(卡號、上機日期、上機時間、下機日期、下機時間、消費時間、消費金額、上機狀態)
7)退卡(卡號、使用者編號、退還金額、退還日期)
8)日結賬單(使用者編號、上期餘額、當日儲值金額、當日消費、單日退還、本期金額、日期)
9)周結賬單(使用者編號、上期餘額、當日儲值金額、當日消費、單日退還、本期金額、日期)
10)工作記錄(使用者編號、上機時間、下機時間、所在機號、使用者狀態)
五、實體設計
這個階段主要是在資料庫的儲存記錄格式、儲存記錄安排和存取方法。這個階段完全依賴給定的硬體環境和資料庫產品。
按照需求把沒有個表設計出來:
(1)使用者資訊(User_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
使用者編號 |
UserNo |
varChar |
10 |
|
使用者姓名 |
UserName |
varChar |
10 |
是 |
層級 |
Level |
varChar |
10 |
|
密碼 |
Password |
varChar |
10 |
|
建立者 |
ConstuctorNo |
varChar |
10 |
是 |
(2)基本資料(BasicData_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
使用者編號 |
UserNo |
varChar |
10 |
|
會員單價 |
VIPRate |
int |
|
|
普通單價 |
CommonRate |
int |
|
|
遞增時間 |
IncreaseTime |
int |
|
|
最少上機時間 |
LeastTime |
int |
|
|
準備時間 |
ReadyTime |
int |
|
|
最少金額 |
LeastCash |
int |
|
|
編輯日期時間 |
SetDateTime |
DataTime |
|
是 |
(3)學生資訊(Student_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
使用者編號 |
UserNo |
varChar |
10 |
|
學號 |
StudentNo |
varChar |
10 |
|
學生姓名 |
StudentName |
varChar |
10 |
|
性別 |
Sex |
varChar |
10 |
|
系別 |
Department |
varChar |
10 |
|
年級 |
Grade |
varChar |
10 |
|
班級 |
Class |
varChar |
10 |
|
備忘 |
Explain |
varChar |
50 |
是 |
註冊時間 |
RegisterDateTime |
DataTime |
|
是 |
學生狀態 |
StudentState |
varChar |
10 |
是 |
卡號 |
CardNo |
varChar |
10 |
|
(4)儲值(Recharge_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
卡號 |
CardNo |
varChar |
10 |
|
使用者編號 |
UserNo |
varChar |
10 |
|
儲值時間 |
RechargeDateTime |
DataTime |
|
|
儲值金額 |
Recharge |
int |
|
|
(5)上機情況(Online_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
卡號 |
CardNo |
varChar |
10 |
|
上機時間 |
OnComDateTime |
datatime |
|
|
下機時間 |
OffComDateTime |
datatime |
|
|
消費時間 |
UseTime |
int |
|
|
消費金額 |
UsedCost |
int |
|
|
上機狀態 |
ComState |
varchar |
10 |
|
電腦名稱 |
ComName |
int |
|
|
(6)退卡(BackCard_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
卡號 |
CardNo |
varChar |
10 |
|
使用者編號 |
UserNo |
varChar |
10 |
|
退卡時間 |
BackDateTime |
DataTime |
|
|
退卡金額 |
BackCash |
int |
|
|
(7)卡(card_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
卡號 |
CardNo |
varChar |
10 |
|
使用者編號 |
UserNo |
varchar |
10 |
|
餘額 |
Cash |
int |
|
是 |
卡類型 |
CardType |
varchar |
10 |
|
結賬 |
IsCheck |
varchar |
10 |
|
註冊時間 |
RegisterDateTime |
datetime |
|
|
卡狀態 |
CardState |
varchar |
10 |
|
(8)工作記錄(WorkLog_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
使用者編號 |
UserNo |
varChar |
10 |
|
上機時間 |
EnterComDateTime |
datetime |
|
|
下機時間 |
OffComDateTime |
datetime |
|
是 |
電腦名稱 |
ComName |
varchar |
50 |
|
使用者狀態 |
UserState |
varchar |
10 |
|
(9)日結賬單(DayCheck_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
使用者編號 |
UserNo |
varChar |
10 |
|
上期餘額 |
RemainCash |
int |
|
是 |
當日儲值金額 |
RechargeCash |
int |
|
是 |
當日消費 |
ConsumeCash |
int |
|
是 |
當日退還 |
BackCash |
int |
|
是 |
今日金額 |
AllCash |
int |
|
是 |
日期 |
CheckDate |
date |
|
|
(10)周結賬單(WeekCheck_Info)
描述 |
欄位名 |
資料類型 |
大小 |
是否空 |
使用者編號 |
UserNo |
varChar |
10 |
|
上周餘額 |
RemainCash |
int |
|
是 |
本周儲值金額 |
RechargeCash |
int |
|
是 |
本周消費 |
ConsumeCash |
int |
|
是 |
本周退還 |
BackCash |
int |
|
是 |
本周金額 |
AllCash |
int |
|
是 |
日期 |
CheckDate |
date |
|
|
六、資料庫實現
把表建立起來後基本就完成了,這個時候就要對資料庫和應用程式進行交流,引用這個資料庫,資料庫試運行。
七、資料庫運行與維護
在編寫程式的過程中,發現有的地方資料庫的資料類型會有影響,可以進行更新更改。對資料庫進行維護。
<號外>心靈雞湯
通過對資料庫的設計,我又從新走了一遍軟體的建立過程,基本和軟工的思想是一樣的,其中還是需要我們不斷的理解不斷的創新,比如,ER圖的畫法,如何找實體,如何找出其中的關係,這都是我們這個階段都要掌握的,這就是我們的基礎!
【王雷 http://blog.csdn.net/kisscatforever】
#【資料庫】機房收費系統資料庫設計