日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

电影院票务管理系统数据库设计(2)

發(fā)布時間:2024/1/17 windows 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 电影院票务管理系统数据库设计(2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在電影院票務管理系統(tǒng)數(shù)據(jù)庫設計(1)中我們從一道面試題展開,最后給出如下影院票務管理系統(tǒng)的表關系圖

以上的設計是否易用?

首先想一下訂票最簡單的過程,不包括意外情況。

  • 顧客先來到柜臺,跟柜臺服務員說要買哪場電影的哪幾個空位的票
  • 服務員創(chuàng)建一個訂單(在Table_OrderHead中插入一條記錄)
  • 若顧客為會員,刷會員卡(Update Table_OrderHead中的Customer_ID的值)
  • 服務員選擇顧客指定場次的多個位子
  • 服務員點擊出票(在Table_OrderDetail和Table_OrderSeat中插入相應記錄)
  • 若顧客還需要買其他場次的電影,重復步驟4~5
  • 想了一下這個過程,我自己感覺步驟1比較累贅,服務員每次都需要創(chuàng)建一個空訂單頭,之后才真正開始選位出票,比較麻煩。

    而且如果在選位子之前,顧客突然決定不看電影了,服務員必須把前面創(chuàng)建的訂單頭刪除,否則會在系統(tǒng)中留下孤立的OrderHead記錄,會破壞數(shù)據(jù)完整性。

    同時想到平日自己去電影院買票時,服務員都是直接選位子出票的,所以我們修改設計如下:

    現(xiàn)在系統(tǒng)的訂票流程如下:

  • 顧客先來到柜臺,跟柜臺服務員說要買哪場電影的哪幾個空位的票
  • 服務員選擇顧客指定場次的多個位子
  • 若顧客為會員,刷會員卡
  • 服務員點擊出票
  • 若顧客還需要買其他場次的電影,重復步驟2~4
  • 這個流程去除了每次服務員創(chuàng)建訂單的動作,簡化了最一般的情況,即顧客買某場電影的多張票。但若顧客要買多場電影的票時,需要多次刷會員卡,這里變麻煩了但這種情況不多,我覺得這更符合影院的實際需求。

    統(tǒng)計一下票房收入

    統(tǒng)計某段時間內,某部電影總共銷售收入應該是比較常見的需求,我們用T-SQL來實現(xiàn)這一需求。

    輸入:電影ID(@MovieID),起始時間(@StartDate),終止時間(@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;

    ?

    ?

    轉載于:https://www.cnblogs.com/DBFocus/archive/2010/07/26/1785126.html

    總結

    以上是生活随笔為你收集整理的电影院票务管理系统数据库设计(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。