《数据库原理》课程设计报告
《數(shù)據(jù)庫(kù)原理》課程設(shè)計(jì)報(bào)告
題目:KTV管理系統(tǒng)
就是記錄一下小組做的 以后或許有點(diǎn)用
文章目錄
- 一、簡(jiǎn)要概述
- 二、需求分析
- 三、 概念結(jié)構(gòu)設(shè)計(jì)
- 四、邏輯結(jié)構(gòu)設(shè)計(jì)
- 五、數(shù)據(jù)庫(kù)物理實(shí)現(xiàn)
- 六、總結(jié)
一、簡(jiǎn)要概述
顧客來(lái)到KTV一定會(huì)開包房消費(fèi),但是包房會(huì)有大小之分,不同類型的包房的價(jià)格也不同。可以按照顧客的需求進(jìn)行包房的分配,并且及時(shí)知道包房剩余狀態(tài),更方便快捷的進(jìn)行包房的分配。并且可以了解VIP顧客的性別,年齡,電話,可以準(zhǔn)確地為客人服務(wù)。現(xiàn)在大部分ktv都是將酒水放在房間外一個(gè)單獨(dú)的地方,有需求的顧客可以自行去購(gòu)買酒水然后結(jié)賬購(gòu)買酒水,顧客消費(fèi)酒水,系統(tǒng)可以對(duì)酒水消費(fèi)的賬單進(jìn)行查詢,查詢賣出酒水的種類,數(shù)量。對(duì)服務(wù)員可以準(zhǔn)確地了解服務(wù)員信息,可以輸入新招聘的服務(wù)員的信息,刪除原來(lái)辭職的服務(wù)員信息,有效地提高服務(wù)效率,使顧客體驗(yàn)更好。
二、需求分析
1.現(xiàn)實(shí)需求分析(通過(guò)與一些去過(guò)KTV的顧客以及KTV服務(wù)員之間的問(wèn)答進(jìn)行分析而得)
KTV管理信息系統(tǒng)主要是完成對(duì)KTV的管理(包括預(yù)定,開房,結(jié)賬)和各種相關(guān)信息的管理的錄入和查詢。用戶登入系統(tǒng),輸入用戶名和密碼,系統(tǒng)從數(shù)據(jù)庫(kù)的用戶信息表進(jìn)行核對(duì),完全進(jìn)入系統(tǒng)。房間或會(huì)員信息的增加時(shí),系統(tǒng)會(huì)把這些信息入到數(shù)據(jù)庫(kù)中的房間和會(huì)員信息表中。
若客人取消預(yù)定,則在預(yù)定單表中刪除這些信息。當(dāng)結(jié)賬時(shí), 通過(guò)房間編號(hào)從收銀單據(jù)表中讀取消費(fèi)信息。結(jié)賬后,就把此行信息刪除,寫入到收銀單據(jù)表中。如果是會(huì)員,消費(fèi)的信息會(huì)員寫入到會(huì)員信息中,消費(fèi)的次數(shù)和消費(fèi)的金額都將累加,如果消費(fèi)積分達(dá)到一定的程度,會(huì)員的賬單可以擁有一定的折扣。
2.系統(tǒng)最終用戶
服務(wù)員
3.數(shù)據(jù)庫(kù)功能需求分析
本系統(tǒng)是為一般KTV設(shè)計(jì)的KTV 管理系統(tǒng),程序要求能錄入些基本的資料,需要對(duì)顧客完成對(duì)房間的預(yù)定,開房,結(jié)賬以及進(jìn)行酒水消費(fèi)等基本信息操作,并可以對(duì)這些信息進(jìn)行統(tǒng)計(jì),根據(jù)以上的需求,數(shù)據(jù)庫(kù)的設(shè)計(jì),必需滿足以下幾點(diǎn):
●記錄服務(wù)員的基本信息:工號(hào),姓名,性別,電話。
●記錄房間的基本信息:房間號(hào),房間推薦人數(shù),房間類型,房間的價(jià)格,房間狀態(tài)。
●記錄會(huì)員的基本信息: 會(huì)員賬號(hào),會(huì)員姓名,電話,地址,充值數(shù)目,充值時(shí)間,賬戶余額,消費(fèi)次數(shù),消費(fèi)積分。
●記錄預(yù)訂單信息:包括預(yù)訂單編號(hào),顧客名稱,房間編號(hào),房間類型,房間價(jià)格,顧客電話,開房開始時(shí)間,開房結(jié)束時(shí)間,服務(wù)員姓名,服務(wù)員工號(hào),下訂單日期,備注。
●記錄收銀單據(jù)信息:單據(jù)編號(hào),房間編號(hào),房間類型,房間價(jià)格,顧客名稱,開房時(shí)間,關(guān)房時(shí)間,付款方式,折扣,消費(fèi)總額,開房日期,會(huì)員編號(hào)
●記錄用戶信息,包括用戶ID,用戶名,用戶密碼,用戶權(quán)限類型
●記錄酒水賬單信息,包括酒水賬單編號(hào),酒水種類,酒水價(jià)格,酒水售出時(shí)間
主要功能包括:
1、權(quán)限管理:為指定角色分配權(quán)限
(1)根據(jù)輸入信息(ID、權(quán)限信息、功能信息)分配角色對(duì)應(yīng)權(quán)限。?(2)保存權(quán)限信息。
2、會(huì)員管理:查看會(huì)員基本信息,更新積分情況,記錄消費(fèi)次數(shù)
3、服務(wù)員管理:
記錄服務(wù)員的基本信息并對(duì)相關(guān)信息進(jìn)行管理
4、房間管理:
查看包房狀態(tài)變化、更新包房信息、進(jìn)行房間信息查詢
進(jìn)行房間預(yù)定:顧客打電話預(yù)訂包間 ,然后KTV前臺(tái)服務(wù)員查詢包房房間信息然后安排預(yù)訂,將預(yù)訂號(hào)反饋給顧客最后更新房間預(yù)訂狀態(tài)
開房:在查詢到的滿足顧客條件的包房中安排一間包房給顧客
5.酒水消費(fèi):顧客進(jìn)行酒水消費(fèi),打印酒水消費(fèi)賬單
6.收銀:顧客提出結(jié)賬要求、服務(wù)員打印收銀小票 、修改包間房間信息
功能結(jié)構(gòu)圖
4.數(shù)據(jù)字典
用戶:
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
user_id char 否 登錄用戶id 主鍵
user_name varchar 否 用戶姓名
user_password varchar 否 用戶密碼
user_type int 否 用戶權(quán)限類型(0:管理員1:普通用戶)
服務(wù)員:
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
s_id char 否 服務(wù)員工號(hào) 主鍵
s_name varchar 否 服務(wù)員姓名
s_phone char 否 服務(wù)員電話
s_sex Char 否 服務(wù)員性別 只能男或女
vip顧客:
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
v_id Char 否 顧客賬號(hào) 主鍵
v_name varchar 否 顧客姓名
v_phone varchar 否 顧客電話
v_age Tinyint 否 顧客年齡
v_sex char 否 顧客性別 只能男或女
v_address varchar 否 顧客地址
v_charge double 否 充值數(shù)目
v_time datetime 否 充值時(shí)間
v_yue float 否 賬戶余額
v_ci int 否 0 消費(fèi)次數(shù)
v_integral float 否 消費(fèi)積分
房間:
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
r_id char 否 房間編號(hào) 主鍵
r_type varchar 否 房間類型 1:小包2:中包3:大包
r_status int 否 0 房間狀態(tài) 0:空房 1:已預(yù)訂 2:有人
r_price float 否 房間價(jià)格
r_num Char 否 推薦人數(shù)(1-2、3-6、7-15)
預(yù)訂單:
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
order_id Char 否 預(yù)訂單編號(hào) 主鍵
c_name varchar 否 顧客姓名
r_id char 否 房間編號(hào)
r_type varchar 否 房間類型 1:小包2:中包3:大包
r_price float 否 房間價(jià)格
c_phone char 否 顧客電話
openc_start datetime 否 開房開始時(shí)間
openc_end datetime 否 開房結(jié)束時(shí)間
s_id char 否 服務(wù)員工號(hào)
order_time datetime 否 預(yù)訂日期
v_id char 是 會(huì)員編號(hào)
order_remake varchar 是 描述
酒水消費(fèi):
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
w_id Char 否 酒水賬單編號(hào) 主鍵
w_category varchar 否 酒水種類
w_name varchar 否 酒水名稱
w_price Decimal 否 酒水價(jià)格
w_num int 否 購(gòu)買數(shù)量
w_out Datetime 否 售出時(shí)間
w_money float 否 酒水消費(fèi)
收銀單據(jù):
數(shù)據(jù)名稱 數(shù)據(jù)類型 是否可以為空 默認(rèn)值 描述 備注
b_id char 否 單據(jù)編號(hào) 主鍵
r_id char 否 房間編號(hào)
r_type varchar 否 房間類型
r_price float 否 房間價(jià)格
c_name varchar 否 顧客姓名
openc_start datetime 否 房間開始時(shí)間
openc_end datetime 否 結(jié)束時(shí)間
order_time datetime 否 下單時(shí)間
s_id Char 否 服務(wù)員工號(hào)
v_id char 是 會(huì)員賬號(hào)
f_money double 否 總消費(fèi)
f_paymode varchar 否 付款方式
三、 概念結(jié)構(gòu)設(shè)計(jì)
3.1實(shí)體和實(shí)體間的聯(lián)系
(1)一個(gè)顧客對(duì)應(yīng)一個(gè)房間。
(2)一個(gè)顧客對(duì)應(yīng)一個(gè)收銀單據(jù)。
(3)多個(gè)服務(wù)員對(duì)應(yīng)多個(gè)包間。
(4)一個(gè)顧客對(duì)應(yīng)一個(gè)酒水賬單。
(5)一個(gè)酒水對(duì)應(yīng)一個(gè)顧客。
(6)一個(gè)房間對(duì)應(yīng)多個(gè)顧客。
3.2全局概念模式設(shè)計(jì)
一、
二、
各實(shí)體之間關(guān)系E-R圖
四、邏輯結(jié)構(gòu)設(shè)計(jì)
1、由實(shí)體關(guān)系圖轉(zhuǎn)換關(guān)系模式,結(jié)果如下:
(1)用戶(用戶id,用戶姓名,用戶密碼,用戶權(quán)限類型)
(2)vip顧客(顧客賬號(hào),顧客姓名,顧客電話,顧客性別,顧客地址,賬號(hào)余額
充值數(shù)目,充值時(shí)間,消費(fèi)次數(shù),消費(fèi)積分)
(3)服務(wù)員(服務(wù)員工號(hào),服務(wù)員姓名,服務(wù)員性別,服務(wù)員電話)
(4)房間(房間編號(hào),房間價(jià)格,房間類型,房間狀態(tài),推薦人數(shù))
(5)酒水賬單(酒水賬單編號(hào),名稱,種類,價(jià)格,購(gòu)買數(shù)量,售出時(shí)間,酒水消費(fèi))
(6)收銀單據(jù)(單據(jù)編號(hào),服務(wù)員工號(hào),顧客姓名,房間編號(hào),房間類型,房間價(jià)格,顧客姓名,房間開始時(shí)間,結(jié)束時(shí)間,開房日期,會(huì)員編號(hào),總消費(fèi),下單時(shí)間,付款方式)
(7)預(yù)訂訂單(預(yù)訂單編號(hào),顧客姓名,房間編號(hào),房間類型,房間價(jià)格,顧客電話,開房日期,開房時(shí)間,服務(wù)員工號(hào),預(yù)訂日期,會(huì)員編號(hào),備注)
2、數(shù)據(jù)庫(kù)中表的的邏輯結(jié)構(gòu)
用戶(users):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
user_id char 2 否 登錄用戶id primary key
user_name varchar 8 否 用戶姓名
user_password varchar 16 否 用戶密碼
user_type int 否 用戶權(quán)限類型(0:管理員1:普通用戶)
服務(wù)員(server):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
s_id char 6 否 服務(wù)員工號(hào) primary key
s_name varchar 10 否 服務(wù)員姓名
s_phone char 11 否 服務(wù)員電話
s_sex Char 4 否 服務(wù)員性別 只能男或女
vip顧客(vipcustomer):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
v_id Char 8 否 顧客賬號(hào) primary key
v_name varchar 10 否 顧客姓名
v_phone varchar 11 否 顧客電話
v_age Tinyint 否 顧客年齡
v_sex char 2 否 顧客性別 Check
v_address varchar 30 否 顧客地址
v_charge Float 8 否 充值數(shù)目
v_time datetime 否 充值時(shí)間
v_yue float 8 否 賬戶余額
v_ci int 8 否 0 消費(fèi)次數(shù)
v_integral float 8 否 消費(fèi)積分
房間(room):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
r_id char 4 否 房間編號(hào) primary key
r_type varchar 10 否 房間類型 1:小包2:中包3:大包
r_status int 否 0 房間狀態(tài) 0:空房 1:已預(yù)訂 2:有人
r_price float 8 否 房間價(jià)格
r_num Char 6 否 推薦人數(shù)(1-2、3-6、7-15)
預(yù)訂單(orders):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
order_id Char 6 否 預(yù)訂單編號(hào) Primary key
c_name varchar 8 否 顧客姓名
r_id char 4 否 房間編號(hào)
r_type varchar 10 否 房間類型 1:小包2:中包3:大包
r_price float 8 否 房間價(jià)格
c_phone char 11 否 顧客電話
openc_start datetime 否 開房開始時(shí)間
openc_end datetime 8 否 開房結(jié)束時(shí)間
s_id char 6 否 服務(wù)員工號(hào)
order_time datetime 否 預(yù)訂日期
v_id char 8 是 會(huì)員編號(hào)
order_remake varchar 50 是 備注
酒水消費(fèi)(wine):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
w_id Char 4 否 酒水賬單編號(hào) primary key
w_category varchar 20 否 酒水種類
w_name varchar 20 否 酒水名稱
w_price Decimal 10,2 否 酒水價(jià)格
w_num int 否 購(gòu)買數(shù)量
w_out Datetime 否 售出時(shí)間
w_money float 8 否 酒水消費(fèi)
收銀單據(jù)(bill):
列名 數(shù)據(jù)類型 長(zhǎng)度 是否可以為空 默認(rèn)值 備注 約束
b_id char 10 否 單據(jù)編號(hào) Primary key
r_id char 4 否 房間編號(hào)
r_type varchar 10 否 房間類型
r_price float 8 否 房間價(jià)格
c_name varchar 8 否 顧客姓名
openc_start datetime 否 房間開始時(shí)間
openc_end datetime 否 結(jié)束時(shí)間
order_time datetime 否 下單時(shí)間
s_id Char 6 否 服務(wù)員工號(hào)
v_id char 8 是 會(huì)員賬號(hào)
f_money double 8 否 總消費(fèi)
f_paymode varchar 10 否 付款方式
五、數(shù)據(jù)庫(kù)物理實(shí)現(xiàn)
1、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)
SQL SERVER操作
(1)創(chuàng)建數(shù)據(jù)庫(kù):
createdatabase ktv;
(2) 建表
use ktv;
用戶表:
createtable users(–用戶
user_idchar(2)primarykey,–用戶id
user_namevarchar(8)notnull,–用戶姓名
user_type int,–用戶權(quán)限類型
user_password varchar(16)–用戶密碼
)
結(jié)果如圖所示:
Vip顧客表:
createtable vipcustomer(–vip顧客
v_id char(8)primarykey,–vip賬號(hào)
v_name varchar(10)notnull,–姓名
v_age tinyintnotnull,–年齡
v_phone char(11)notnull,–電話
v_sex char(2)check (v_sex=‘男’or v_sex=‘女’),–性別
v_time datetimenotnull,–充值時(shí)間
v_ci intdefault’0’,–消費(fèi)次數(shù)
v_address varchar(30),–顧客地址
v_integral float(8),–消費(fèi)積分
v_charge float(8),–充值數(shù)目
v_yue intdefault’0’notnull–賬戶余額
)
結(jié)果如圖所示:
服務(wù)員表:
createtableserver(–服務(wù)員
s_id char(8)primarykey,–服務(wù)員工號(hào)
s_name varchar(10)notnull,–服務(wù)員姓名
s_sex char(2)check(s_sex='男’or s_sex=‘女’),–服務(wù)員性別
s_phone varchar(11)notnull,–服務(wù)員電話
)
結(jié)果如圖所示:
房間表:
createtable room(–房間
r_id char(4)primarykey,–房間編號(hào)
r_type char(10)notnull,–房間類型
r_status intdefault’0’,–房間狀態(tài)(0:空房,1:已預(yù)訂,2:已開房)
r_price intnotnull,–房間價(jià)格
r_num char(6)notnull–推薦人數(shù)
)
結(jié)果如圖所示:
酒水消費(fèi)表:
createtable wine(–酒水消費(fèi)
s_id intprimarykey,–酒水賬單編號(hào)
w_name varchar(20)notnull,–酒水名稱
w_category varchar(20)notnull,–酒水種類
w_price decimal(10,2)notnull,–酒水價(jià)格
w_out datetimenotnull,–售出時(shí)間
w_num intnotnull,–購(gòu)買數(shù)量
w_money float(8)–酒水消費(fèi)
)
結(jié)果如圖所示:
收銀單據(jù)表:
createtable bill(–收銀單據(jù)
b_id char(10)primarykey,–單據(jù)編號(hào)
s_id char(8)notnull,–服務(wù)員工號(hào)
r_id char(4)notnull,–房間編號(hào)
r_type char(10)notnull,–房間類型
r_price intnotnull,–房間價(jià)格
openc_start datetimenotnull,–房間開始時(shí)間
openc_end datetimenotnull,–結(jié)束時(shí)間
openc_date datetimenotnull,–開房日期
v_id char(8),–會(huì)員賬號(hào)
c_name char(8)notnull,–顧客姓名
f_money intnotnull,–總消費(fèi)
f_paymode varchar(10)notnull,–付款方式
f_time datetimenotnull–下單時(shí)間
constraint fk_sid foreignkey(s_id)referencesserver(s_id)ondeletecascadeonupdatecascade,
constraint fk_vid foreignkey(v_id)references vipcustomer(v_id)ondeletecascadeonupdatecascade,
constraint fk_rid foreignkey(r_id)references room(r_id)ondeletecascadeonupdatecascade
)
結(jié)果如圖所示:
預(yù)訂單表:
createtable orders(–預(yù)訂單
order_id char(10)primarykey,–單據(jù)編號(hào)
s_id char(8)notnull,–服務(wù)員工號(hào)
r_id char(4)notnull,–房間編號(hào)
r_type char(10)notnull,–房間類型
r_price intnotnull,–房間價(jià)格
openc_time datetimenotnull,–開房開始時(shí)間
openc_end datetimenotnull,–開房結(jié)束時(shí)間
order_date datetimenotnull,–預(yù)訂日期
v_id char(8),–會(huì)員賬號(hào)
c_name char(8)notnull,–顧客姓名
c_phone char(11)notnull,–顧客電話
order_remake varchar(50),–備注
constraint fk_s2id foreignkey(s_id)referencesserver(s_id)ondeletecascadeonupdatecascade,
constraint fk_v2id foreignkey(v_id)references vipcustomer(v_id)ondeletecascadeonupdatecascade,
constraint fk_r2id foreignkey(r_id)references room(r_id)ondeletecascadeonupdatecascade
)
結(jié)果如圖所示:
2、數(shù)據(jù)操作
2.1數(shù)據(jù)錄入(部分)
用戶表:
insertinto users(user_id,user_name,user_password,user_type)values (‘01’,‘mary’,‘200010’,1)
insertinto users(user_id,user_name,user_password,user_type)values (‘02’,‘haha’,‘200011’,1)
insertinto users(user_id,user_name,user_password,user_type)values (‘03’,‘zhangsam’,‘200012’,1)
insertinto users(user_id,user_name,user_password,user_type)values (‘04’,‘lila’,‘200013’,1)
服務(wù)員表:
insertintoserver(s_id,s_name,s_phone,s_sex)values (‘000001’,‘mary’,‘15873322471’,‘女’)
insertintoserver(s_id,s_name,s_phone,s_sex)values (‘000002’,‘haha’,‘15873122471’,‘男’)
insertintoserver(s_id,s_name,s_phone,s_sex)values (‘000003’,‘zhangsam’,‘15373322471’,‘男’)
insertintoserver(s_id,s_name,s_phone,s_sex)values (‘000004’,‘lila’,‘15873232471’,‘女’)
Vip顧客表:
insertinto vipcustomer(v_id,v_name,v_phone,v_age,v_sex,v_address,v_charge,v_time,v_yue,v_ci,v_integral)values (‘19069001’,‘張三’,‘15833354471’,21,‘男’,‘湖南’,100,2017-12-12,100,2,10)
insertinto vipcustomer(v_id,v_name,v_phone,v_age,v_sex,v_address,v_charge,v_time,v_yue,v_ci,v_integral)values (‘19069002’,‘麗麗’,‘15834554471’,21,‘男’,‘河南’,50,2017-10-12,100,2,10)
insertinto vipcustomer(v_id,v_name,v_phone,v_age,v_sex,v_address,v_charge,v_time,v_yue,v_ci,v_integral)values (‘19069003’,‘小飛’,‘15245335447’,21,‘女’,‘福建’,200,2018-04-02,100,2,10)
insertinto vipcustomer(v_id,v_name,v_phone,v_age,v_sex,v_address,v_charge,v_time,v_yue,v_ci,v_integral)values (‘19069004’,‘菲菲’,‘15833435466’,21,‘男’,‘江西’,200,2018-11-02,100,2,10)
房間表:
insertinto room(r_id,r_type,r_status,r_price,r_num)values (‘1001’,‘小包’,0,20,‘1-2’)
insertinto room(r_id,r_type,r_status,r_price,r_num)values (‘1002’,‘中包’,1,60,‘2-6’)
insertinto room(r_id,r_type,r_status,r_price,r_num)values (‘1003’,‘大包’,0,88,‘7-15’)
insertinto room(r_id,r_type,r_status,r_price,r_num)values (‘1004’,‘中包’,2,60,‘2-6’)
4.2數(shù)據(jù)查詢
–(1)查詢vip顧客表中最年長(zhǎng)的vip顧客年齡
selectmax(v_age)from vipcustomer
–(2)統(tǒng)計(jì)男女vip顧客的人數(shù)
select v_sex,count(v_id)from vipcustomer groupby v_sex
–(3)查詢所有姓李的服務(wù)員信息
select*fromserverwhere s_name like’李%’
–(4)查詢房間空閑的房間信息
select*from room where r_status=0
–(5)查詢vip顧客消費(fèi)次數(shù)大于4的顧客信息
select*from vipcustomer where v_ci>10
–(6)查詢年齡在19-23之間的vip顧客信息
select*from vipcustomer where v_age>=19 and v_age<=23
–(7)查詢房間類型和數(shù)量
select r_type,count(r_type)from room groupby r_type
–(8)查詢服務(wù)員名字第二個(gè)字是’天’的個(gè)人信息
select*fromserverwhere s_name like’_天%’
–(9)查詢各種包房的單價(jià)和
select r_type,sum(r_price)from room groupby r_type
–(10)將電話為’15833354471’的vip顧客姓名改為胡漢三
update vipcustomer set v_name='胡漢三’where v_phone=‘15833354471’
–(11)將包房的使用情況更新成使用。
update room set r_status=1 where r_id=10
–(12)將服務(wù)員李紅的信息刪除
deletefromserverwhere s_name=‘李紅’
–(13)查詢酒水賬單編號(hào)為’9003’的信息
select*from wine where w_id=‘9003’
–(14)查詢每種酒的單價(jià)
selectdistinct w_category,sum(w_price)from wine groupby w_category
–(15)查詢房間總消費(fèi)低于平均房間消費(fèi)的支付方式
select f_money,f_paymode from bill wheref_money<(selectavg(f_money)from bill)
4.3視圖
–1.視圖V1,查詢年齡是21歲的VIP顧客信息
GO
createview V1
as
select*from vipcustomer where v_age=21
withcheckoption
GO
–2.視圖V2,查詢所有服務(wù)員的信息
createview V2
as
select*fromserver
GO
–3.視圖V3,按總消費(fèi)查詢收銀單據(jù)前5單信息
create?view?V3?
as??
select
top?5?*?
from?bill?orderby?bill.f_money desc
視圖圖示:
六、總結(jié)
1、小組總結(jié)
在這次項(xiàng)目設(shè)計(jì)中,我們小組所選擇的是設(shè)計(jì)一個(gè)KTV管理系統(tǒng),這對(duì)我
們來(lái)說(shuō)是一次嘗試與創(chuàng)新的過(guò)程,也可以說(shuō)是一個(gè)挑戰(zhàn)的過(guò)程。由于我們剛剛學(xué)數(shù)據(jù)庫(kù),因此我們還是缺少經(jīng)驗(yàn)。現(xiàn)在我們利用自己學(xué)到的知識(shí)設(shè)計(jì)并制作一
個(gè)KTV管理系統(tǒng),這本身就是一個(gè)知識(shí)轉(zhuǎn)化為生產(chǎn)力的過(guò)程,所以大家都很興奮,
都不同程度的投入了很高的熱情與努力。哪怕我們因?yàn)樗悸飞嫌行┎畛貙?dǎo)致最后結(jié)果有些不盡人意,但是我們已經(jīng)在盡我們最大努力了。交上了一份還算滿意的答卷。從各種文檔的閱讀到需求分析、概要設(shè)計(jì)、數(shù)據(jù)庫(kù)總體設(shè)計(jì)、代碼編寫與調(diào)試,我們都準(zhǔn)備了好長(zhǎng)時(shí)間。總的來(lái)說(shuō),在數(shù)據(jù)庫(kù)的規(guī)范性方面我們系統(tǒng)比較符合范式,表與表之間存在著比較合理的依賴關(guān)系;在實(shí)用性方面,我們通過(guò)KTV系統(tǒng)服務(wù)員可以為顧客開房、預(yù)定房間、收銀等等,顧客還可以通過(guò)服務(wù)員進(jìn)行房間消費(fèi)查詢,并且擁有收銀單據(jù),服務(wù)員可以通過(guò)每日收銀單據(jù)進(jìn)行單天收入記錄,總的來(lái)說(shuō)整個(gè)服務(wù)系統(tǒng)還是較為完善的。有著很大的實(shí)用性。系統(tǒng)結(jié)構(gòu)符合實(shí)際的要求,能夠適用于現(xiàn)在許多的KTV;在系統(tǒng)功能方面我們能夠滿足服務(wù)員進(jìn)行管理的功能、權(quán)限管理、房間管理、信息查詢等等功能,使得系統(tǒng)正常運(yùn)行。
一個(gè)數(shù)據(jù)庫(kù)的設(shè)計(jì)首先最重要的是要能夠滿足需求,并且要盡量使其與程序較為符合使編碼的難度有所降低,而且就像數(shù)據(jù)結(jié)構(gòu)決定代碼的效率,數(shù)據(jù)庫(kù)的結(jié)構(gòu)同樣如此,好的表結(jié)構(gòu)對(duì)于以后的數(shù)據(jù)庫(kù)結(jié)構(gòu)有著莫大的作用。畢竟打好基礎(chǔ)才可以穩(wěn)固的進(jìn)行下一步。然后數(shù)據(jù)庫(kù)的設(shè)計(jì),要盡量符合范式,減少數(shù)據(jù)冗余,表與表間的聯(lián)系要準(zhǔn)確,邏輯要正確從而提高效率和維護(hù)數(shù)據(jù)一致性,但是根據(jù)實(shí)際經(jīng)驗(yàn),適當(dāng)?shù)娜哂嗫梢杂欣跀?shù)據(jù)庫(kù)的查詢速度,所以這中間的取舍是我們主要討論的一個(gè)點(diǎn)。數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟先找到所有實(shí)體,找到實(shí)體間的關(guān)系,對(duì)已有E-R圖進(jìn)行刪減多余信息,最后根據(jù)三大基本范式對(duì)表進(jìn)行重新檢查。
在此次設(shè)計(jì)過(guò)程中,我們遇到了很多的問(wèn)題,比如約束設(shè)置不合理,最終我們?cè)趯?shí)踐過(guò)程中才實(shí)現(xiàn)了更好的相關(guān)約束;還有字段設(shè)置不合理,比如時(shí)間,我們?cè)O(shè)計(jì)的是datetime,但是在處理數(shù)據(jù)過(guò)程我們才發(fā)現(xiàn)應(yīng)該使用date更加合理。
總結(jié)
以上是生活随笔為你收集整理的《数据库原理》课程设计报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: idea生成方法注释的正确方法
- 下一篇: 使用Redis让单号从001递增