景点门票销售管理系统数据库设计说明书

发布时间:2019-08-25 15:24:24

景点门票销售管理系统

数据库设计

学生姓名: 李丙崇

号: 2010508009

学生姓名: 任欣月

号: 2010508041

业: 计算机科学与技术

指导老师: 于宝华

1引言

随着全球信息化的发展,我们也步入信息时代,各类管理也更加系统化,公司利用管理信息系统来管理各类业务已经非常普遍。各类系统也相应的得到飞速发展,为了让我们的管理更加系统,更加清晰,更加科学,从而也开发了一个简单,易操作的管理管理系统。

1.1编写目的

根据门票销售管理的特点,对被开发软件系统的主要功能、性能进行完整描述,为软件开发进行详细设计和编程提供基础。为软件提供测试和验收的依据,即为选取测试用例和进行验收的依据。

1.2背景

a. 该软件系统的名称:

门票管理信息系统;

b. 本项目的任务提出者:

石河子大学

c. 本项目的开发者:

李丙崇 任欣月

d. 本项目用户:

景点门票销售部

1.3 参考资料

[1]王珊,萨师煊.数据库系统概论[M].高等教育出版社,20065月第4

[2]郑人杰,马素霞,殷人昆.软件工程概率[M].机械工业出版社,200911

[3]马晓梅.SQL Server实验指导[M].清华大学出版社,20099月第3

2需求分析

2.1目标

这个门票管理系统主要是处理旅客买票,订票,退票,以及各类查询结算。该系统针对的用户是门票销售部门,由于门票销售,查询以及计算各天或者不同时间段的收入比较繁琐,此系统方便简单的实现了这些功能,使得管理员与职工方便很多,让这个门票销售都变得条条有理。

2.2运算坏境

1)软件资源

服务器端软件选择的具体说明:

操作系统:Windows 2007 Server Windows XP

数据库管理系统:SQL Server

开发工具:visual studio 2008.

软件平台:windows+iis+mssql

客户端软件选择的具体说明:web浏览器。

2.3 需求概述

本系统的开发是为了提高门票销售以及管理的效率,尽可能杜绝各个销售环节中可能出现的资金流失不明现象,满足系统化的门票管理域收入需求。系统功能主要包括:登陆管理(包括管理员登陆以及职工登陆,职工注册情况),系统管理(系统启用,及其系统截止),直接销售(个人购买与团购),订票管理(订票与查看订票状态),退票管理(处理当天所要退的票),查询管理(按时间查询,按职工号查询,游客种类查询,按时间票号查询,按时间,职工号查询,按时间,游客种类查询,以及当天销售查询),结算管理(具体时间查询以及时间段查询),最后是系统简介。

3结构设计

3.1逻辑结构设计

3.1.1 局部 E-R

4. 营业员E-R

5. 游客E-R

6. 门票E-R

7. 门票类型E-R

3.1.2 全局 E-R

8总体E-R

3.1.3关系模式

Admin_T( Sell_operator,User_name,password,Sex,Realname,Cardnumber,Age,Phone,User_type)

该表为管理表,表项包括销售营业员,用户姓名,密码,性别,真实姓名,卡号,年龄,电话号码,用户类型的信息。主键为销售营业员。

Dd_T( Order_ID,Custom_ID,Ticker_ID,Ticker_type,Ticker_Price,Sell_operator,Sell_date,Sell_month)

该表为订单表,表项有订单号,游客号,门票号,门票类型,门票价格,销售营业员,销售日期和销售月份。该表的主键为订单号,外键有游客号,门票号,门票类型,门票价格和销售营业员。

Custom_T(Custom_ID,Custom_name,Sex,Age,Cardnumber,Custom_type,Custom_phone)

该表为游客信息表,表项有游客号,游客姓名,身份证号,游客类型,游客电话。该表主键为游客号,无外键。

Ticket_summary(Sell_ID,Ticket_type, Sell_amount,Sell_money,Sell_month)

该表为门票信息统计表,表项有出售号码,门票类型,出售时间,出售月份,出售价格。该表主键为出售号,外键为门票类型。

Ticket_T(Ticket_type,Ticket_type_name,Ticket_price,Ticket_Count,Ticket_comment,Date)

该表为门票信息表,表项有门票类型,类型名,门票价格,门票数量,日期。主键为门票类型,无外键。

Ticket_List(Ticket_ID,Ticket_type,Sell_flag)

该表为门票属性信息表,表项为门票号,门票类型,和是否出售标记。主键为门票号,外键为门票类型。

3.1.1关系图

3.2物理结构设计

1 Admin_T

2 Custom_T

3 dd_T

4 Ticket_List

5 Ticket_summary

6 Ticket_T

4.存储过程

4.1统计指定日期的门票销售情况

create Procedure Pro_QTicsinf

@starttime datetime,@endtime datetime,@sSell_amount_out int output,

@sSell_money_out decimal(5, 2) output

AS select @sSell_amount_out=count(Ticket_ID),

@sSell_money_out=sum(dd_T.Ticket_Price)

from dd_T,Ticket_T

where Ticket_T.Ticket_type=dd_T.Ticket_type and Sell_date between @starttime and @endtime

declare @starttime datetime, @endtime datetime,@sSell_amount_out int ,

@sSell_money_out decimal(5, 2)

select @starttime='2013/1/13 00:00:00'

select @endtime='2013/1/13 19:40:00'

exec Pro_QTicsinf @starttime,@endtime,@sSell_amount_out output,@sSell_money_out output

select @sSell_amount_out as 门票数量,@sSell_money_out as 金额

4.2统计指定月份的门票销售情况

create Procedure Pro_QTicsminf

@sSell_month nvarchar(10),@sSell_amount_out int output,@sSell_money_out decimal(5, 2) output

AS select @sSell_amount_out=count(Ticket_ID),

@sSell_money_out=sum(dd_T.Ticket_Price)

from dd_T,Ticket_T

where Ticket_T.Ticket_type=dd_T.Ticket_type and Sell_month=@sSell_month

declare @sSell_month nvarchar(10),@sSell_amount_out int,

@sSell_money_out decimal(5, 2)

select @sSell_month='2013/1'

exec Pro_QTicsminf @sSell_month,@sSell_amount_out output,@sSell_money_out output

select @sSell_amount_out as 门票数量,@sSell_money_out as 金额

4.3统计指定日期各种价格的门票销售情况

create Procedure Pro_QTicsPinf

@starttime datetime,@endtime datetime, @sTicket_type char(3),

@sTicket_Price_out decimal(5, 2) output,@sSell_amount_out int output,

@sSell_money_out decimal(5, 2) output

AS select

@sTicket_Price_out=Ticket_Price,

@sSell_amount_out=count(Ticket_ID),

@sSell_money_out=sum(dd_T.Ticket_Price)

from dd_T

where @sTicket_type=dd_T.Ticket_type and Sell_date between @starttime and @endtime

group by Ticket_Price

declare @starttime datetime, @endtime datetime,@sTicket_type char(3),

@sTicket_Price_out decimal(5, 2),

@sSell_amount_out int , @sSell_money_out decimal(5, 2)

select @starttime='2013/1/13 00:00:00 '

select @endtime='2013/1/13 19:40:00'

select @sTicket_type='T01'

exec Pro_QTicsPinf @starttime,@endtime,@sTicket_type,@sTicket_Price_out output,@sSell_amount_out output,@sSell_money_out output

select @sTicket_Price_out as 门票价格,@sSell_amount_out as 门票数量,@sSell_money_out as 门票金额

select @sTicket_type='T02'

exec Pro_QTicsPinf @starttime,@endtime,@sTicket_type,@sTicket_Price_out output,@sSell_amount_out output,@sSell_money_out output

select @sTicket_Price_out as 门票价格,@sSell_amount_out as 门票数量,@sSell_money_out as 门票金额

select @sTicket_type='T03'

exec Pro_QTicsPinf @starttime,@endtime,@sTicket_type,@sTicket_Price_out output,@sSell_amount_out output,@sSell_money_out output

select @sTicket_Price_out as 门票价格,@sSell_amount_out as 门票数量,@sSell_money_out as 门票金额

4.3统计指定营业员指定日期的收费情况

create Procedure Pro_QTicsCinf

@starttime datetime,@endtime datetime, @sSell_operator nvarchar(10),

@sSell_amount_out int output,@sSell_money_out decimal(5, 2) output

AS select

@sSell_amount_out=count(Ticket_ID),

@sSell_money_out=sum(dd_T.Ticket_Price)

from dd_T

where @sSell_operator=dd_T.Sell_operator and Sell_date between @starttime and @endtime

group by Sell_operator

declare @starttime datetime, @endtime datetime,@sSell_operator nvarchar(10),

@sSell_amount_out int , @sSell_money_out decimal(5, 2)

select @starttime='2013/1/13 00:00:00'

select @endtime='2013/1/13 23:40:00'

select @sSell_operator='001'

exec Pro_QTicsCinf @starttime,@endtime,@sSell_operator,@sSell_amount_out output,@sSell_money_out output

select @sSell_operator as 营业员,@sSell_amount_out as 销售门票数量,@sSell_money_out as 收费总金额

select @sSell_operator='002'

exec Pro_QTicsCinf @starttime,@endtime,@sSell_operator,@sSell_amount_out output,@sSell_money_out output

select @sSell_operator as 营业员,@sSell_amount_out as 销售门票数量,@sSell_money_out as 收费总金额

5 触发器

a.有人买票时,自动更改门票标志位

create trigger TRIGGER_BUY_TIC

on dd_T for insert

as

begin

Declare @Ticket_ID_IN char(17)

Select @Ticket_ID_IN=Ticket_ID from inserted

update Ticket_List set Sell_flag=1

where Ticket_ID=@Ticket_ID_IN

end

insert into dd_T values('O006','1005','S0006','T02',40,'001','2013/2/13 19:50:00','2013/2')

b.若有人退票,对各表所有有关该人的信息进行级联删除

create trigger TRiGGER_EXIT_TIC

on dd_T for delete

as

begin

Declare @Order_ID_DEL char(10),@Custom_ID_DEL char(10),@Ticket_ID_ALT char(17)

Select @Order_ID_DEL=Order_ID,@Custom_ID_DEL=Custom_ID,@Ticket_ID_ALT=Ticket_ID from deleted

update Ticket_List set Sell_flag=0

where Ticket_ID=@Ticket_ID_ALT

delete from Custom_T

where Custom_ID=@Custom_ID_DEL

end

go

DELETE from dd_T where Order_ID='O006'

c.当门票销售时自动减少该该类型门票的总量

create trigger tri_Tic_Sell

on Ticket_summary for insert

as declare @oldcount int,@newcount int,@sTicket_type char(3)

select @sTicket_type=Ticket_type,@newcount=Sell_amount from inserted

select @oldcount=Ticket_Count from Ticket_T where Ticket_type=@sTicket_type

if @newcount>0 and @oldcount>0

begin

update Ticket_T set Ticket_Count=@oldcount-@newcount where Ticket_type=@sTicket_type

return

end

rollback transaction

insert into Ticket_summary values('C0004','T01','2013-01-17 18:47', '002',2,40,'2013-01')

d.当门票修改类型时自动修改门票各类型的数量

create trigger tri_Ticxg

on Ticket_List for update

as declare @sTic_ID char(17),@sTicket_type char(3),@saTicket_type char(3),@scount int,@sacount int

select @sTicket_type=Ticket_type,@sTic_ID=Ticket_ID from inserted

select @saTicket_type=Ticket_type from Ticket_List where Ticket_ID=@sTic_ID

select @scount=Ticket_Count from Ticket_T where Ticket_type=@sTicket_type

select @sacount=Ticket_Count from Ticket_T where Ticket_type=@saTicket_type

begin

update Ticket_T set Ticket_Count=@scount+1 where Ticket_type=@sTicket_type

return

update Ticket_T set Ticket_COunt=@sacount-1 where Ticket_type=@saTicket_type

return

end

rollback transaction

update Ticket_List set Ticket_type='T02' where Ticket_ID='S0001'

6完整性约束

USE Attraction_Manage

go

alter table Admin_T with check

add constraint CHECK_SEX check(Sex='' or Sex=''),

constraint CHECK_AGE check(Age>=0)

go

alter table Custom_T with check

add constraint CHECK1_SEX check(Sex='' or Sex=''),

constraint CHECK1_AGE check(Age>=0)

go

alter table Admin_

alter table Ticket_summary with check

add constraint CHECK_Sell_amount check(Sell_amount>=0),

constraint CHECK_Sell_money check(Sell_money>=0.00)

7.数据库备份

7.1 完整数据库备份

use Attraction_Manage

go

backup database Attraction_Manage

to disk='E:\备份数据库\Fbackup_Attraction_Manage'

with init

go

7.2 完整数据库恢复

use master

go

restore database Attraction_Manage

from disk='E:\备份数据库\Fbackup_Attraction_Manage'

with REPLACE

go

7.3差异数据库备份

use Attraction_Manage

backup database Attraction_Manage

to disk='E:\备份数据库\Dbackup_Attraction_Manage'

with differential

go

7.4差异数据库备份恢复

use master

go

restore database Attraction_Manage

from disk='E:\备份数据库\Fbackup_Attraction_Manage'

with norecovery

go

restore database Attraction_Manage

from disk='D:\备份数据库\Dbackup_Attraction_Manage'

with replace

go欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢!你的意见是我进步的动力,希望您提出您宝贵的意见!让我们共同学习共同进步!学无止境.更上一层楼。

景点门票销售管理系统数据库设计说明书

相关推荐