終于,走到了機(jī)房收費(fèi)系統(tǒng)重構(gòu)的階段……
之前的一遍機(jī)房收費(fèi)系統(tǒng)的數(shù)據(jù)庫是用的給的那個(gè),只是把每個(gè)表都看了一下,當(dāng)時(shí)也沒有學(xué)習(xí)數(shù)據(jù)庫原理那本書,然后就沒有深究……
現(xiàn)在不一樣了,我們進(jìn)行機(jī)房收費(fèi)系統(tǒng)重構(gòu),況且學(xué)習(xí)了數(shù)據(jù)庫原理這本書,對數(shù)據(jù)庫有了更深的認(rèn)識,
機(jī)房收費(fèi)系統(tǒng)重構(gòu)——數(shù)據(jù)庫設(shè)計(jì)
。所以對于數(shù)據(jù)庫要好好的設(shè)計(jì),按照步驟走……數(shù)據(jù)庫技術(shù)是信息資源管理最有效地手段。數(shù)據(jù)庫設(shè)計(jì)是指對于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),有效存儲數(shù)據(jù),滿足用戶信息要求和處理要求。
數(shù)據(jù)庫的設(shè)計(jì)的步驟和各階段的主要內(nèi)容如下:
在邏輯設(shè)計(jì)階段要注意
將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:
(1)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。
(2)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。 而關(guān)系的碼為各實(shí)體碼的組合。<喎?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è)計(jì)出了數(shù)據(jù)庫中每個(gè)表:
用戶信息表(User_Info):
UsrID
用戶名(主鍵)
Char(10)
Password
密碼
Char(10)
Level
級別
Char(10)
UserName
真實(shí)姓名
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
注冊時(shí)間
Time
checkstatus
結(jié)賬狀態(tài)
Bit
UserID
用戶名
Char(10)
由于學(xué)生和卡是兩個(gè)不同的實(shí)體,所以將它們有關(guān)的信息分開記錄,防止數(shù)據(jù)冗余,防止表的臃腫。
充值記錄表(Recharge):
cardID
卡號
Char(10)
rechargeMoney
充值金額
Decimal(10,4)
RechargeDate
充值日期
Date
RechargeTime
充值時(shí)間
Time
userID
用戶名
Char(10)
checkstatus
結(jié)賬狀態(tài)
Bit
退卡記錄表(Cancelcard):
cardID
卡號
Char(10)
returnMoney
退還金額
Decimal(10,4)
CancelcardDate
退卡日期
Date
CancelcardTime
退卡時(shí)間
Time
UserID
用戶名
Char(10)
checkstatus
結(jié)賬狀態(tài)
Bit
上下機(jī)記錄表(OnOffLineRecord):
cardID
卡號
Char(10)
OnDate
上機(jī)日期
Date
Ontime
上機(jī)時(shí)間
Time
OffDate
下機(jī)日期
Date
Offtime
下機(jī)時(shí)間
Time
OffWay
下機(jī)方式
Char(10)
ConsumeMoney
消費(fèi)金額
Decimal(10,4)
ConsumeTime
消費(fèi)時(shí)間
Time
UserID
用戶名
Char(10)
checkstatus
結(jié)賬狀態(tài)
Bit
Computer
機(jī)器名
Char(10)
基本數(shù)據(jù)表(BasicData):
Leasttime
至少上機(jī)時(shí)間
Time
Unittime
單位遞增時(shí)間
Time
Rate
固定每小時(shí)費(fèi)用
Decimal(10,4)
Tmprate
臨時(shí)每小時(shí)費(fèi)用
Decimal(10,4)
Limitcash
最少金額
Decimal(10,4)
date
日期
Date
Time
時(shí)間
Time
UserID
用戶名
Char(10)
賬單(check):
LastcardMoney
上期充值卡金額
Decimal(10,4)
CurrentrechargeMoney
本期充值卡金額
Decimal(10,4)
CurrentcancelcardMoney
本期退卡金額
Decimal(10,4)
CurrentconsumeMoney
本期消費(fèi)金額
Decimal(10,4)
CurrentcardMoney
本期充值卡金額
Decimal(10,4)
Date
日期
Date
Time
時(shí)間
Time
UserId
用戶名
Char(10)
工作記錄表(workLog):
UserID
用戶名
Char(10)
Ondate
登錄日期
Date
Ontime
登錄時(shí)間
Time
Offdate
注銷日期
Date
Offtime
注銷時(shí)間
Time
Status
狀態(tài)
Bit
Computer
機(jī)器名
Char(10)
總結(jié):數(shù)據(jù)庫設(shè)計(jì)是很重要的一件事,但是我們不可能一次就將自己的數(shù)據(jù)庫設(shè)計(jì)的完美,每次都嚴(yán)格按照規(guī)則走,只有實(shí)踐的多了才能慢慢的設(shè)計(jì)出好的數(shù)據(jù)庫,