之前,學習編寫機房收費系統的文檔時,曾寫過 機房收費系統數據庫概念設計模型ER圖 這篇文章,現在到了機房收費系統個人版重構階段,需要再次進行數據庫的設計。可以說,之前的數據庫的概念設計給我現在的設計奠定了一定的基礎,但是仍然發現自己的設計中有
之前,學習編寫機房收費系統的文檔時,曾寫過 機房收費系統數據庫概念設計模型——ER圖 這篇文章,現在到了機房收費系統個人版重構階段,需要再次進行數據庫的設計。可以說,之前的數據庫的概念設計給我現在的設計奠定了一定的基礎,但是仍然發現自己的設計中有許多不合理并且需要改進的地方。
在這次的數據庫設計當中,學習了一些數據庫的命名規范,重溫了經典的三范式(屬性原子化,避免局部依賴,避免傳遞依賴)。但是發現,在需求面前,一些分屬兩張表的字段,為了方便,還是得放到一張表中,不得不破壞三范式。
現在將自己設計的數據庫分享如下:(因為自己還沒真正進行機房的重構,不知道在實際應用中,這些表是否合理,還請大家提寶貴意見。)
數據庫名ComputerRoomChargeSystem
學生信息表(T_StudentInfo)
名稱 |
意義 |
類型 |
studentID |
學號(主鍵) |
Char(10) |
studentName |
姓名 |
Char(10) |
sex |
性別 |
Char(2) |
department |
系別 |
Char(20) |
grade |
年級 |
Char(10) |
class |
班級 |
Char(10) |
用戶信息表(T_UserInfo)
名稱 |
意義 |
類型 |
UserID |
用戶名(主鍵) |
Char(10) |
realName |
真實姓名 |
Char(10) |
userLevel |
用戶級別 |
Char(8) |
userPassword |
用戶密碼 |
Char(10) |
accountHolder |
開戶人 |
Char(10) |
卡信息(T_CardInfo)
名稱 |
意義 |
類型 |
cardID |
卡號(主鍵) |
Char(10) |
studentID |
學號(外鍵) |
Char(10) |
account |
余額 |
Decimal(10,4) |
usageState |
使用狀態 |
Char(6) |
cardType |
卡類型 |
Char(8) |
registrationDate |
注冊日期 |
Date |
registrationTime |
注冊時間 |
Time(0) |
UserID |
用戶名 |
Char(10) |
checkStatus |
結賬狀態 |
Bit(1) |
賬單(T_AccountSheet)
名稱 |
意義 |
類型 |
checkID |
結賬編號(主鍵) |
Decimal(18,0) |
lastCardMoney |
上期充值卡金額 |
Decimal(18,4) |
currentChargeMoney |
本期充值金額 |
Decimal(18,4) |
currentReturnMoney |
本期退卡金額 |
Decimal(18,4) |
currentConsumeMoney |
本期消費金額 |
Decimal(18,4) |
currentCardMoney |
本期充值卡金額 |
Decimal(18,4) |
checkDate |
結賬日期 |
Date |
checkTime |
結賬時間 |
Time(0) |
userID |
用戶名 |
Char(10) |
賬單,我為其設置了一個結賬編號,作為主鍵,我想在真正建表時,可以按照結賬編號從大到小排列,因為在打印賬單或是日結賬, 周結賬都是結最近的賬單吧。
本期充值卡金額=上期充值卡金額+本期充值金額-本期消費金額-本期退卡金額
充值記錄表(T_ChargeRecord)
名稱 |
意義 |
類型 |
cardID |
卡號(外鍵) |
Char(10) |
chargeDate |
充值日期 |
Date |
chargeTime |
充值時間 |
Time(0) |
chargeMoney |
充值金額 |
Decimal(10,4) |
checkStatus |
結賬狀態 |
Bit(1) |
userID |
用戶名 |
Char(10) |
退卡記錄表(T_ReturnRecord)
名稱 |
意義 |
類型 |
cardID |
卡號(外鍵) |
Char(10) |
returnDate |
退卡日期 |
Date |
returnTime |
退卡時間 |
Time(0) |
account |
退卡金額 |
Decimal(10,4) |
checkStatus |
結賬狀態 |
Bit(1) |
userID |
用戶名 |
Char(10) |
上下機記錄表(T_OnOffLineRecord)
名稱 |
意義 |
類型 |
cardID |
卡號(外鍵) |
Char(10) |
onDate |
上機日期 |
Date |
onTime |
上機時間 |
Time(0) |
offDate |
下機日期 |
Date |
offTime |
下機時間 |
Time(0) |
offWay |
下機方式 |
Char(8) |
consumeMoney |
消費金額 |
Decimal(10,4) |
userID |
用戶名 |
Char(10) |
checkStatus |
結賬狀態 |
Char(6) |
onFlag |
正在上機標志 |
Bit(1) |
在這個表中,我增加了結賬狀態這個字段,因為想到結賬時,除了會結購卡數,充值金額,退卡金額,還要結消費金額。
基本數據表(T_BasicData)
名稱 |
意義 |
類型 |
fixedPerCharge |
固定每小時費用 |
Decimal(10,4) |
temporaryPerCharge |
臨時每小時費用 |
Decimal(10,4) |
increasingUnitTime |
遞增單位時間 |
SmallInt |
leastTime |
至少上機時間 |
SmallInt |
prepareTime |
準備時間 |
SmallInt |
minMoney |
最少金額 |
Decimal(10,4) |
操作員工作記錄(T_WorkLog)
名稱 |
意義 |
類型 |
UserID |
用戶名(外鍵) |
Char(10) |
LoginDate |
登錄日期 |
Date |
LoginTime |
登錄時間 |
Time(0) |
ExitDate |
注銷日期 |
Date |
ExitTime |
注銷時間 |
Time(0) |
onFlag |
正在上機標志 |
Bit(1) |
computerID |
機器名 |
Varchar(10) |
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com