电影院票务管理系统数据库设计(2)
在電影院票務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)(1)中我們從一道面試題展開(kāi),最后給出如下影院票務(wù)管理系統(tǒng)的表關(guān)系圖
以上的設(shè)計(jì)是否易用?
首先想一下訂票最簡(jiǎn)單的過(guò)程,不包括意外情況。
想了一下這個(gè)過(guò)程,我自己感覺(jué)步驟1比較累贅,服務(wù)員每次都需要?jiǎng)?chuàng)建一個(gè)空訂單頭,之后才真正開(kāi)始選位出票,比較麻煩。
而且如果在選位子之前,顧客突然決定不看電影了,服務(wù)員必須把前面創(chuàng)建的訂單頭刪除,否則會(huì)在系統(tǒng)中留下孤立的OrderHead記錄,會(huì)破壞數(shù)據(jù)完整性。
同時(shí)想到平日自己去電影院買票時(shí),服務(wù)員都是直接選位子出票的,所以我們修改設(shè)計(jì)如下:
現(xiàn)在系統(tǒng)的訂票流程如下:
這個(gè)流程去除了每次服務(wù)員創(chuàng)建訂單的動(dòng)作,簡(jiǎn)化了最一般的情況,即顧客買某場(chǎng)電影的多張票。但若顧客要買多場(chǎng)電影的票時(shí),需要多次刷會(huì)員卡,這里變麻煩了但這種情況不多,我覺(jué)得這更符合影院的實(shí)際需求。
統(tǒng)計(jì)一下票房收入
統(tǒng)計(jì)某段時(shí)間內(nèi),某部電影總共銷售收入應(yīng)該是比較常見(jiàn)的需求,我們用T-SQL來(lái)實(shí)現(xiàn)這一需求。
輸入:電影ID(@MovieID),起始時(shí)間(@StartDate),終止時(shí)間(@EndDate)
輸出:總票房收入(@TotalBoxOffice)
if object_id(N'Proc_GetBoxOffice') is not null begindrop procedure dbo.Proc_GetBoxOffice; end gocreate procedure dbo.Proc_GetBoxOffice@MovieID int,@StartDate datetime,@EndDate datetime,@TotalBoxOffice money output asif @MovieID is null beginraiserror('@MovieID is null in Proc_GetBoxOffice', 16, 1); endif @StartDate is null beginraiserror('@StartDate is null in Proc_GetBoxOffice', 16, 1); endif @EndDate is null beginraiserror('@EndDate is null in Proc_GetBoxOffice', 16, 1); end;With OrderTotalAmount as (selectOrderInfo.Order_ID,OrderInfo.Order_AdjustedPrice * count(*) as OrderTotalAmountfromdbo.Table_Order OrderInfoinner joindbo.Table_Schedule ScheduleonOrderInfo.Schedule_ID = Schedule.Schedule_IDinner joindbo.Table_OrderSeat OrderSeatonOrderInfo.Order_ID = OrderSeat.Order_IDwhereOrderInfo.Order_BuyDate >= @StartDateandOrderInfo.Order_BuyDate < dateadd(day, 1, convert(varchar(10), @EndDate, 120))andSchedule.Movie_ID = @MovieIDgroup byOrderInfo.Order_ID,OrderInfo.Order_AdjustedPrice ) select@TotalBoxOffice = sum(OrderTotalAmount) fromOrderTotalAmount;?
?
轉(zhuǎn)載于:https://www.cnblogs.com/DBFocus/archive/2010/07/26/1785126.html
總結(jié)
以上是生活随笔為你收集整理的电影院票务管理系统数据库设计(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: isqlplus
- 下一篇: VSS源代码管理应该怎么样对bin目录及