电影院网上售票管理系统数据库设计报告
文章目录
1 需求分析
1.1 背景分析
近些年来,国家经济水平飞速发展,人们消费水平日益增高,同时网络的飞速发展也给人们生活带来巨大便利,我国电影行业也因此蓬勃发展,全国各地新增电影院数量大大增加,各种类型电影层出不穷,人们去电影院观影的频率大大增加,电影院产生的各种信息随之大量增加。当前,我国影院市场普遍面临着人力成本高,工作效率低,故障率高,技术人员流动性大等诸多问题。为增加顾客购票渠道,方便顾客进行电影信息查询、购票,同时提高影院的工作效率,本文根据电影院网上售票相关需求设计了电影院网上售票管理信息系统,电影院网上售票系统数据库有利于电影院信息的存储,管理和利用,有助于电影行业统计分析各种数据,提高影院工作效率,也有助于对电影的营销和根据大量信息中有效数据来预测未来电影行业的发展趋势和前景。
1.2 数据需求分析
电影院网上售票管理系统数据库需要对影片类型、影片、用户、放映厅、电影票、座位、电影场次、订单等数据进行管理,才能实现网上购票相关功能,具体如下:
- 影片类型数据:类型编号、类型名称
- 影片数据:影片编号、名称、上映年份、所属类型、时长、导演、主演
- 用户:用户名、密码、姓名、性别、电话
- 放映厅:编号、名称、类型、座位数
- 电影票:编号、场次、座位号
- 座位:座位号、状态、所属放映厅
- 电影场次:场次编号、影片、价格、开始时间、结束时间
- 订单:订单号、用户名、金额、电影票、状态
1.3 业务规则分析
为简化数据库的设计,约定以下主要业务规则:一种影片类型可以包含多部电影,一部电影只属于一种影片类型;一个电影场次可以包含多张电影票,一张电影票只属于一个场次;一个用户可以购买多张电影票,一张电影票只能被一个用户购买;一个放映厅可以播放多部电影,一部电影也可以在多个放映厅播放;一个放映厅有多个座位,一个座位只属于一个放映厅。
1.4 功能模块
该电影院网上售票系统主要包含两类用户:管理员及顾客,其分别对应不同的功能模块,具体如下:
管理员:用户管理、影片管理、场次管理、订单管理、统计分析
用户:注册、登录、购票
2 数据库概念模型
2.1 局部ER图




。。。。。。。。。。。
2.2 全局ER图

3 数据库逻辑模型
3.1 关系模式设计
系统关系模式如下(主键加实线,外键加虚线):
用户类型表(类编编号,类型名,折扣)
用户表(用户名,密码,姓名,性别,电话,类型编号)
放映厅表(编号,名称,类型,座位数)
座位表(座位编号,状态,放映厅编号)
影片类型(编号,名称)
影片表(编号,名称,上映年份,类型编号,时长,导演,语言)
场次表(编号,影片编号,放映厅编号,价格,播放日期,播放时间)
电影票表(编号,场次号,座位号,状态)
订单表(订单号,用户名,总金额,票数,购买时间)
订单明细表(订单号,票号,是否退票)
3.2 数据模式关系图

4 创建数据库、表、插入数据
4.1 创建数据库、表
(1)创建数据库
create database film
(2)创建用户类型表
create table usertype
(tid int not null,
tname varchar(20),
discount decimal(3,2))
(3)创建用户表
create table users
(uname varchar(20) not null,
upwd varchar(10) not null,
realname varchar(10) not null ,
sex char(2) not null,
uphone char(11) not null,
tid int)
(4)创建放映厅表
create table hall
(hid int not null,
hname varchar(20) not null,
htype varchar(20) not null,
seatnum int not null)
(5)创建座位表
create table seat
(sid int not null,
sname varchar(20) not null,
status char(1) not null ,
hid int)
。。。。。。。。。。
4.2 添加数据
(1)添加用户类型
INSERT INTO usertype VALUES('1', '普通会员', '1')
INSERT INTO usertype VALUES('2', 'vip会员', '0.88')
(2)添加用户
INSERT INTO USERS VALUES('u0001', 'sfd343w', '张三', '男', '15859656321', '1')
INSERT INTO USERS VALUES('u0002', 'fgfgere2', '李四', '男', '15859656322', '1')
INSERT INTO USERS VALUES('u0003', '343sedfds', '王强', '男', '15859656323', '1')
INSERT INTO USERS VALUES('u0004', '45dfd65', '李思思', '女', '15859656324', '1')
INSERT INTO USERS VALUES('u0005', '167yhkjl', '赵群', '男', '15859656325', '2')
INSERT INTO USERS VALUES('u0006', '3567hftui', '刘东', '男', '15859656326', '2')
INSERT INTO USERS VALUES('u0007', 'ghh88kkk', '刘倩倩', '女', '15859656327', '2')
INSERT INTO USERS VALUES('u0008', 'gfyu890o', '浦东门', '男', '15859656328', '2')
INSERT INTO USERS VALUES('u0009', 'gfhju865h', '郭贝贝', '男', '15859656329', '2') INSERT INTO USERS VALUES('u0010', 'fdgyt67uj', '王光强', '男', '15859656330', '2')
(3)添加影片类型
INSERT INTO filmtype VALUES('1', '战争')
INSERT INTO filmtype VALUES('2', '动作')
INSERT INTO filmtype VALUES('3', '剧情')
INSERT INTO filmtype VALUES('4', '悬疑')
INSERT INTO filmtype VALUES('5', '爱情')
INSERT INTO filmtype VALUES('6', '犯罪')
INSERT INTO filmtype VALUES('7', '喜剧')
INSERT INTO filmtype VALUES('8', '冒险')
INSERT INTO filmtype VALUES('9', '武侠')
INSERT INTO filmtype VALUES('10', '家庭')
。。。。。。。。。。。
5 sql实现
(1)某个影片电影票还未售出的功能实现
create view ticket_not_sale
as
select f.fname,s.startdate,s.starttime,st.Sname
from session s,film f,Ticket t ,seat st
where s.fid=f.fid
and s.sid=t.sid
and t.seatid=st.sid
and t.status=0

(2)电影票房情况统计功能实现
create view film_sales
as
select f.fname,SUM(o.totalprice) as totalmoney
from film f,orders o,orderdetail d,ticket t,session s
where o.oid=d.oid
and d.tid=t.tid
and t.sid=s.sid
and s.fid=f.fid
group by f.fname,o.odate

。。。。。。。
6 总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。通过本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在同学和老师的帮助下得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。
完整报告及全套SQL代码下载: https://pan.baidu.com/s/1ft6DzxaYU27aATyo52sKDQ
提取码:
DkME
按照操作说明,程序可以运行,
非常不错,真的是帮大忙了呀,哈哈~~