終于,走到了機房收費系統(tǒng)重構(gòu)的階段……
之前的一遍機房收費系統(tǒng)的數(shù)據(jù)庫是用的給的那個,只是把每個表都看了一下,當(dāng)時也沒有學(xué)習(xí)數(shù)據(jù)庫原理那本書,然后就沒有深究……
現(xiàn)在不一樣了,我們進行機房收費系統(tǒng)重構(gòu),況且學(xué)習(xí)了數(shù)據(jù)庫原理這本書,對數(shù)據(jù)庫有了更深的認識,
機房收費系統(tǒng)重構(gòu)——數(shù)據(jù)庫設(shè)計
。所以對于數(shù)據(jù)庫要好好的設(shè)計,按照步驟走……數(shù)據(jù)庫技術(shù)是信息資源管理最有效地手段。數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲數(shù)據(jù),滿足用戶信息要求和處理要求。
數(shù)據(jù)庫的設(shè)計的步驟和各階段的主要內(nèi)容如下:
在邏輯設(shè)計階段要注意
將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是要將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:
(1)一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性。實體的碼就是關(guān)系的碼。
(2)一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。 而關(guān)系的碼為各實體碼的組合。<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICCjqDOjqdK7uPYxOm7Bqs+1v8nS1Nequ7vOqtK7uPa2wMGitcS52M+1xKPKvaOs0rK/ydLU0+tutsu21NOmtcS52M+1xKPKvbrPsqKho8jnufvXqru7zqrSu7j2tsDBorXEudjPtcSjyr2jrNTy0+u4w8Gqz7XP4MGstcS498q1zOW1xMLr0tS8sMGqz7WxvsnttcTK9NDUvvnXqru7zqq52M+1tcTK9NDUo6y2+LnYz7W1xMLrzqputsvKtczltcTC66GjPC9wPgo8cD4gICAgIKOoNKOp0ru49jE6McGqz7W/ydLU16q7u86q0ru49rbAwaK1xLnYz7XEo8q9o6zSsr/J0tTT68jO0uLSu7bLttTTprXEudjPtcSjyr26z7KioaM8L3A+CjxwPiAgICAgo6g1o6nI/bj2u/LI/bj20tTJz8q1zOW85LXE0ru49rbg1KrBqs+116q7u86q0ru49rnYz7XEo8q9oaPT67jDtuDUqsGqz7XP4MGstcS498q1zOW1xMLr0tS8sMGqz7WxvsnttcTK9NDUvvnXqru7zqq52M+1tcTK9NDUoaO2+LnYz7W1xMLrzqq498q1zOXC67XE1+m6z6GjIAo8L3A+CjxwPiAgICAgo6g2o6nNrNK7yrXM5byvtcTKtczlvOS1xMGqz7WjrLy019TBqs+1o6zSsr/JsLTJz8r2MToxoaIxOm66zW06bsj91tbH6b/2t9ax8LSmwO2hozwvcD4KPHA+ICAgICCjqDejqb7f09DP4M2swuu1xLnYz7XEo8q9v8m6z7KioaM8L3A+CjxwPiAgICAgo6g4o6m7udPQvs3Kx87Sw8ezo8u1tcTI/be2yr2jqMi3tqjK/b7d0sDAtaGjz/uz/cjf0+C1xMGqz7WjqaO6PC9wPgo8cD4gICAgICAgICAgICAgILXa0ru3tsq9o6gxTkajqaO6udjPtcSjyr1S1tDDv9K7uPbUrdfTtrzKx7K7v8m31rjutcTUrdfTJiMyMDU0MDuhozwvcD4KPHA+ICAgICAgICAgICAgICC12rb+t7bKvaOoMk5Go6mjurnYz7XEo8q9UsrHMU5Go6zDv7j2t8fW98r00NTN6sir0sDAtdPauvLRobz8o6i2vL/J0tTTw8C01/bW97z8tcTX1rbOo6mjrL7NysfC+tfjtdq2/re2yr2hozwvcD4KPHA+ICAgICAgICAgICAgICC12sj9t7bKvaOoM05Go6k6udjPtcSjyr1SyscxTkajrMO/uPa3x9b3yvTQ1La8sru0q7Xd0sDAtdPaUrXEuvLRobz8oaM8L3A+CjxwPiA8L3A+CjxwPiAgICAgICAgICAgICAgytfPyM7SuPm+3dStwLS1xMr9vt2/4r340NDBy9TZtM7J6LzGo6y9q9StwLTTt9bXtcSx7dPQtcS31r+qo6zT0LXEvPXJ2barzvehraGtu63By9K7uPZFUs28o7o8L3A+CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20150525/2015052509421086.jpg" alt="\">
根據(jù)ER圖設(shè)計出了數(shù)據(jù)庫中每個表:
用戶信息表(User_Info):
UsrID
用戶名(主鍵)
Char(10)
Password
密碼
Char(10)
Level
級別
Char(10)
UserName
真實姓名
Char(10)
Holder
開戶人
Char(10)
學(xué)生信息表(Student_Info):
StudentID
學(xué)號(主鍵)
Char(10)
StudentName
姓名
Char(10)
Sex
性別
Char(2)
Department
系別
Char(10)
grade
年級
Char(10)
Class
班級
Char(10)
卡信息表(card_Info):
CardID
卡號(主鍵)
Char(10)
studentID
學(xué)號
Char(10)
Status
使用狀態(tài)
Bit
Account
余額
Decimal(10,4)
Type
卡類型
Char(10)
registDate
注冊日期
Date
registTime
注冊時間
Time
checkstatus
結(jié)賬狀態(tài)
Bit
UserID
用戶名
Char(10)
由于學(xué)生和卡是兩個不同的實體,所以將它們有關(guān)的信息分開記錄,防止數(shù)據(jù)冗余,防止表的臃腫。
充值記錄表(Recharge):
cardID
卡號
Char(10)
rechargeMoney
充值金額
Decimal(10,4)
RechargeDate
充值日期
Date
RechargeTime
充值時間
Time
userID
用戶名
Char(10)
checkstatus
結(jié)賬狀態(tài)
Bit
退卡記錄表(Cancelcard):
cardID
卡號
Char(10)
returnMoney
退還金額
Decimal(10,4)
CancelcardDate
退卡日期
Date
CancelcardTime
退卡時間
Time
UserID
用戶名
Char(10)
checkstatus
結(jié)賬狀態(tài)
Bit
上下機記錄表(OnOffLineRecord):
cardID
卡號
Char(10)
OnDate
上機日期
Date
Ontime
上機時間
Time
OffDate
下機日期
Date
Offtime
下機時間
Time
OffWay
下機方式
Char(10)
ConsumeMoney
消費金額
Decimal(10,4)
ConsumeTime
消費時間
Time
UserID
用戶名
Char(10)
checkstatus
結(jié)賬狀態(tài)
Bit
Computer
機器名
Char(10)
基本數(shù)據(jù)表(BasicData):
Leasttime
至少上機時間
Time
Unittime
單位遞增時間
Time
Rate
固定每小時費用
Decimal(10,4)
Tmprate
臨時每小時費用
Decimal(10,4)
Limitcash
最少金額
Decimal(10,4)
date
日期
Date
Time
時間
Time
UserID
用戶名
Char(10)
賬單(check):
LastcardMoney
上期充值卡金額
Decimal(10,4)
CurrentrechargeMoney
本期充值卡金額
Decimal(10,4)
CurrentcancelcardMoney
本期退卡金額
Decimal(10,4)
CurrentconsumeMoney
本期消費金額
Decimal(10,4)
CurrentcardMoney
本期充值卡金額
Decimal(10,4)
Date
日期
Date
Time
時間
Time
UserId
用戶名
Char(10)
工作記錄表(workLog):
UserID
用戶名
Char(10)
Ondate
登錄日期
Date
Ontime
登錄時間
Time
Offdate
注銷日期
Date
Offtime
注銷時間
Time
Status
狀態(tài)
Bit
Computer
機器名
Char(10)
總結(jié):數(shù)據(jù)庫設(shè)計是很重要的一件事,但是我們不可能一次就將自己的數(shù)據(jù)庫設(shè)計的完美,每次都嚴格按照規(guī)則走,只有實踐的多了才能慢慢的設(shè)計出好的數(shù)據(jù)庫,