旅游管理系统剖析.docx
- 文档编号:28121128
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:50
- 大小:688.69KB
旅游管理系统剖析.docx
《旅游管理系统剖析.docx》由会员分享,可在线阅读,更多相关《旅游管理系统剖析.docx(50页珍藏版)》请在冰豆网上搜索。
旅游管理系统剖析
旅游管理系统剖析
旅游管理系统
一、系统的需求分析
1.1、背景材料
某旅行社要开发一个小型旅游管理子系统,主要涉及的基本实体及其基本信息如下:
旅游线路:
线路编号、起点、终点、旅游天数、主要景点。
旅游班次:
班次编号、出发日期、回程日期、旅游标准、报价、折扣率。
导游:
导游编号、身份证号、姓名、性别、出生日期、住址、联系电话、语种、等级。
宾馆:
宾馆编号、宾馆名称、所在城市、星级、标准房价、联系人、职务、联系地址、联系电话、传真。
游客:
游客编号、身份证号、姓名、性别、出生日期、住址、联系电话,旅游线路、出发日期、回程日期。
保险:
保险单号、人均保险费、保险期限。
1.2、需求分析
一条旅游线路可以开设多条旅游班次,但一个旅游班次只在固定的某一条旅游线路上;每条旅游班次可以有多个旅游团,但某个旅游团只参加某个固定的旅游班次;每个旅游班次可以有多名导游陪同,一名导游可以在不同的时间陪同不同旅游班次的旅游团;一家宾馆可以接待多个旅游班次,一个旅游班次在旅游期间可以再多加宾馆食宿;该旅行社接受游客的个人报名,但将若干相同出发日期、回程日期、旅游线路的游客组织成旅游团的方式开展旅游活动,每个旅游团的人数下限为20人,上限为50人,每个旅游团包括团号、团名、实际人数、联系人、住址、联系电话等信息;游客以旅游团为单位参见保险,一张保险单只对一个旅游团,一个旅游团在旅游期间只能参见一次保险。
二、系统的概要设计
2.1、系统的功能设计
⑴游客报名管理子系统。
至少包括:
游客报名数据的录入,游客报名数据的修改、游客报名数据的注销、游客报名情况查询(尽可能多的查询方式)。
⑵旅游团组团管理子系统。
至少包括:
旅游团的组建工作,当出现相同出发日期、回程日期、旅游线路的游客人数达到组团要求时组建一个旅游团,然后通过存储过程完成旅游班次、导游、办理保险、住宿宾馆等旅游的安排工作、旅游团组团情况查询(尽可能多的查询方式)。
⑶旅游团统计子系统。
至少包括:
按不同的时间段(月、季、年)统计各旅游线路的旅游团的总团数、最少(团的)人数、最多(团的)人数、平均人数、总人数。
等信息;按不同的时间段(月、季、年)统计各宾馆所接待的旅游线路的旅游团的总团数、最少(团的)人数、最多(团的)人数、平均人数、总人数。
等信息。
⑷系统维护子系统。
至少包括:
操作者权限的设置、取消和更改;数据库数据的导入和导出;数据库的备份扥功能。
2.2、系统的数据字典
系统的数据字典:
数据项名
数据类型
宽度,小数位数
取值范围或格式
拟用字段名
线路编号
Char
10
第1位(固定):
1;
第2、3、4位(数字):
国家;第5、6位(数字):
省份;第7、8、9、10位(数字):
编号
Line_no
起点
nvarChar
10
Line_start
终点
nvarChar
10
Line_end
旅游天数
tinyint
Line_days
主要景点
nvarChar
80
Line_sight
班次编号
Char
10
第1位(固定):
2;
第2、3、4位(数字):
国家;第5、6位(数字):
省份;第7、8、9、10位(数字):
编号
Order_no
出发日期
smallDatetime
小于或等于当前日期
Order_go
回程日期
smallDatetime
大于当前日期
Order_back
旅游标准
nvarChar
10
‘豪华’‘经济’
Order_standard
报价
smallMoney
Order_price
实际价格
smallMoney
Order_amout
折扣
float
4
Order_discout
导游编号
Char
7
第1位(固定):
3;
第2、3、4(数字):
国籍;第5、6、7位(数字):
编号
Guide_no
身份证
Char
18
前17位为数字最后一位可为数字或字母
Guide_id
姓名
nChar
10
Guide_name
性别
varChar
2
‘男’或者‘女’
Guide_sex
出生日期
smallDatetime
不得超过当前日期
Guide_birth
住址
nvarChar
50
Guide_address
联系电话
Char
11
Guide_phone
语种
nvarChar
30
Guide_language
等级
nvarChar
5
‘实习’;‘兼职’;‘全职’
Guide_level
团号
Char
10
Group_no
团名
nChar
10
Group_name
实际人数
tinyint
>=20AND<=50
Group_peoples
联系人
nChar
10
Group_charge
住址
nChar
30
Group_address
联系电话
Char
11
Group_phone
宾馆编号
Char
7
第1位(固定):
4;
第2、3、4位(数字):
国家;第5、6、7位(数字):
编号;
Hotels_no
宾馆名称
nVarchar
30
Hotels_name
所在城市
nVarchar
10
内地各城市宾馆
Hotels_city
宾馆星级
nvarChar
10
‘一星级’,‘二星级’,‘三星级’,‘四星级’,‘五星级’
Hotels_star
标准房价
smallmoney
Hotels_price
联系人
nChar
12
Hotels_charge
职务
nChar
14
Hotels_duties
联系地址
nVarchar
60
Hotels_address
联系电话
nChar
11
Hotels_phone
传真
nChar
11
Hotels_faks
游客编号
nChar
7
第1位(固定):
5;
其余位数:
编号
Visitors_no
游客身份证
Char
18
Visitors_code
游客姓名
nChar
12
Visitors_name
游客性别
varChar
2
‘男’或者‘女’
Visitors_sex
游客出生日期
smallDatetime
不得超过当前日期
Visitors_birthdate
游客住址
nVarchar
60
Visitors_address
游客联系电话
Char
13
Visitors_phone
游客旅游线路
nVarchar
100
Visitors_line
出发日期
smallDatetime
不能超过当前日期
Visitors_leave_time
回程日期
smallDatetime
Visitors_return_time
保险单号
nChar
10
第1位(固定):
6;
其余位(数字):
编号
Insurance_no
人均保险费
smallmoney
Insurance_pay
保险期限
Smalldatetime
Insurance_period
2.3、系统的E-R图
2.3.1实体-属性图
旅游线路实体及其属性
旅游班次实体及其属性
导游实体及其属性
旅游团实体及其属性
宾馆实体及其属性
游客实体及其属性
保险实体及其属性
2.3.2实体-联系图
三、系统的详细设计
3.1系统的数据库设计
3.1.1数据库的逻辑设计
一、根据系统的E-R图,转换得到关系模式及每个关系模式的主码、外码如下:
(1)旅游线路(线路编号,起点,终点,旅游天数,主要景点,设计者)主码:
线路编号;外码:
无
(2)旅游班次(班次编号,出发日期,回程日期,旅游标准,报价,折扣率,线路编号)主码:
班次编号;外码:
线路编号
(3)导游资料(导游编号,身份证号,姓名,性别,出生日期,住址,联系电话,等级,语种)主码:
导游编号;外码:
无
(4)旅游团(团号,团名,实际人数,联系人,住址,联系电话,旅游班次)主码:
团号;外码:
旅游班次
(5)宾馆(宾馆编号,宾馆名称,所在城市,星级,标准房间,联系人,联系地址,传真,联系电话,旅游班次)主码:
宾馆编号;外码:
旅游班次
(6)游客(游客编号,身份证号,姓名,性别,出生日期,住址,出发日期,回程日期,班次编号)主码:
旅客编号,身份证号;外码:
班次编号
(7)保险(保险单号,人均保险费,保险期限,团号)主码:
保险单号;外码:
团号
(8)陪同(导游编号,团号)主键:
导游编号,团号,外码:
无
(9)接待(宾馆编号,团号)主键:
导游编号,团号;外码:
无
二、在上述的所定义的所有关系模式中,“游客报名单项”关系模型中,报名费=报价*折扣率,存在“传递依赖”该模式属于2NF,“参保单项”关系模型中,参保总额=人均保险费*实际人数,存在“传递依赖”,只满足2NF。
其他的所有关系模式都满足3NF。
非规范化处理:
1、“游客报名单项”关系模式
若考虑如下两种情况:
如果不存在折扣率优惠,以上的“报名费”的计算公式不成立;
存在折扣率优惠时,该计算公式成立。
为保持处理效率,避免每次查询“报名费”都要重新计算,所以得保留该数据项。
2、“游客报名单”关系模式
为了便于查询报名单的“报名总额”且避免频繁的查询进行计算,而增加“报名总额”这项。
该项是各游客报名费之和。
所以增加“报名总额”数据项。
(1)旅游线路(线路编号,起点,终点,旅游天数,主要景点,设计者)主码:
线路编号;外码:
无
(2)旅游班次(班次编号,出发日期,回程日期,旅游标准,报价,折扣率,线路编号)主码:
班次编号;外码:
线路编号
(3)导游资料(导游编号,身份证号,姓名,性别,出生日期,住址,联系电话,等级,语种)主码:
导游编号,身份证号;外码:
无
(4)旅游团(团号,团名,实际人数,联系人,住址,联系电话,旅游班次)主码:
团号;外码:
旅游班次
(5)宾馆(宾馆编号,宾馆名称,所在城市,星级,标准房间,联系人,联系地址,传真,联系电话)主码:
宾馆编号;外码:
无
(6)游客(游客编号,身份证号,姓名,性别,出生日期,住址,出发日期,旅游线路,回程日期,报名费)主码:
旅客编号,身份证号;外码:
无
(7)保险(保险单号,人均保险费,保险期限,团号)主码:
保险单号;外码:
团号
(8)陪同(陪同单号,导游编号,团号,陪同开始日期,陪同天数)主键:
报名单号,外码:
导游编号,团号
(9)接待(接待单号,宾馆编号,团号,入住时间,接待天数)主键:
接待单号;外码:
宾馆编号,团号
(10)报名(报名单号,报名日期,游客编号,班次编号)主键:
报名单号;外键:
游客编号,班次编号
3.1.2数据库的物理设计
一、根据关系模式分析,得出如下数据库表
⏹tb_User(用户信息表)
表tb_User用于保存客户信息,该表的结构如表5.1所示。
表5.1用户信息表
字段名
数据类型
长度
主键否
描述
User_id
CHAR
8
主键
用户编号
User_name
Nvarchar
20
否
用户名称
User_pwd
char
20
否
用户密码
User_right
char
10
否
用户权限
⏹tb_Line(旅游线路信息表)
表tb_Line用于保存旅游线路信息,该表的结构如表5.2所示。
表5.2旅游线路信息表
字段名
数据类型
长度
主键否
描述
Line_no
Char
10
主键
线路编号
Line_start
NVARchar
10
否
起点
Line_end
NVARchar
10
否
旅游线路终点
Line_days
Tinyint
1
否
旅游天数
Line_sight
Nvarchar
80
否
旅游主要景点
Line_designer
NVARCHAR
8
否
旅游线路设计者
⏹tb_Order(旅游班次信息表)
表tb_Order用于保存旅游班次信息,该表的结构如表5.3所示。
表5.3旅游班次信息表
字段名
数据类型
长度
主键否
描述
Order_no
Char
10
主键
班次编号
Order_go
smallDatetime
4
否
班次出发日期
Order_back
smallDatetime
4
否
班次回程日期
Order_standard
Nchar
10
否
旅游标准
Order_price
smallMoney
4
否
旅游报价
Order_discout
Char
4
否
旅游折扣
Line_no
Char
10
外键
线路编号
⏹tb_Guide(导游信息表)
表tb_Guide用于保存导游信息,该表的结构如表5.4所示。
表5.4导游信息表
字段名
数据类型
长度
主键否
描述
Guide_no
Char
7
主键
导游编号
Guide_id
Char
18
主键
导游身份证
Guide_name
NVARchar
10
否
导游姓名
Guide_sex
Nchar
1
否
导游性别
Guide_birth
smallDatetime
否
出生日期
Guide_address
Nvarchar
50
否
住址
Guide_phone
Char
11
否
导游联系电话
Guide_language
NVARchar
30
否
导游掌握的语种
Guide_level
NVARchar
5
否
导游级别
⏹tb_Group(旅游团信息表)
表tb_group用于保存旅游团信息,该表的结构如表5.4所示。
表55旅游团信息表
字段名
数据类型
长度
主键否
描述
Group_no
Char
10
主键
团号
Group_name
NVARchar
10
否
团名
Group_people
tinyInt
1
否
旅游团实际人数
Grop_charge
NVARchar
10
否
旅游团联系人
Group_address
NVARchar
30
否
住址
Group_phone
Char
11
否
联系电话
Order_no
CHAR
10
外键
旅游班次
⏹tb_Hotels(宾馆信息表)
表tb_Hotels用于保存宾馆信息,该表的结构如表5.5所示。
表5.6宾馆信息表
字段名
数据类型
长度
主键否
描述
Hotels_no
Char
7
主键
宾馆编号
Hotels_name
NvARchar
20
否
宾馆名称
Hotels_city
Nvarchar
10
否
所在城市
Hotels_star
Nchar
10
否
宾馆星级
Hotels_price
smallMoney
4
否
宾馆标准房价
Hotels_charge
NVARchar
12
否
宾馆联系人
Hotels_address
Nvarchar
60
否
宾馆地址
Hotels_phone
char
11
否
宾馆联系电话
Hotels_faks
char
11
否
宾馆传真号码
⏹tb_Vistor(游客信息表)
表tb_Vistor用于保存游客信息表,该表的结构如表5.6所示
表5.7游客信息表
字段名
数据类型
长度
主键否
描述
Vistors_no
char
7
主键
游客编号
Visitors_code
Char
18
主键
游客身份证
Visitors_name
NVARchar
12
否
游客姓名
Visitors_sex
VARchar
1
否
游客性别
Visitors_birth
smallDatetime
4
否
游客出生日期
Visitors_address
Nvarchar
60
否
游客住址
Visitors_phone
Char
11
否
游客联系电话
Visitors_leavetime
smallDatetime
4
否
出发日期
Visitors_returntime
smallDatetime
4
否
回程日期
Visitors_payment
Smallmoney
4
否
报名费
⏹tb_Insurance(保险信息表)
表tb_Insurance用于保存保险信息,该表的结构如表5.7所示。
表5.8保险信息表
字段号
数据类型
长度
主键否
描述
Insurance_no
char
10
主键
保险单号
Insurance_pay
smallMoney
4
否
人均保险费
Insurance_period
Smalldatetime
4
否
保险期限
Group_no
Char
10
外键
团号
⏹tb_accompany(陪同关系表)
表tb_accompany用于联系导游与旅游团的关系,该表的结构如表5.8所示。
表5.9陪同关系表
字段号
数据类型
长度
主键否
描述
Accomp_no
CHAR
10
主键
陪同单号
Guide_no
Char
7
外键
导游编号
Group_no
Char
10
外键
团号
Accomp_start
SMALLDATETIME
4
否
陪同起始日期
Accomp_days
Tinyint
1
否
陪同天数
⏹tb_reception(接待关系表)
表tb_reception用于联系宾馆信息与旅游团的关系,该表的结构如表5.9所示。
表5.10接待关系表
字段号
数据类型
长度
主键否
描述
Reception_no
CHAR
10
主键
接待单号
Hotels_no
Char
7
外键
宾馆编号
Group_no
Char
10
外键
团号
Reception_start
SMALLDATETIME
4
否
入住时间
Reception_days
TINYINT
1
否
入住天数
⏹tb_enroll(报名关系表)
表tb_enroll用于联系游客信息与旅游班次关系和保存报名所需费用的信息,该表的结构如表5.10所示。
表5.11报名关系表
字段号
数据类型
长度
主键否
描述
Enroll_no
CHAR
10
主键
报名单号
Enroll_date
SMALLDATETIME
4
否
报名日期
Visitors_no
Nchar
7
外键
游客编号
Order_no
Char
10
外键
旅游班次编号
二、数据库相关代码
数据库创建
CREATEDATABASETourMDB
ONPRIMARY
(NAME=Tour_dat1,
FILENAME='E:
\data\Tourdat1.mdf',
SIZE=10MB,
MAXSIZE=200MB,
FILEGROWTH=10%),
(NAME=Tour_dat2,
FILENAME='E:
\data2\Tourdat2.ndf',
SIZE=10MB,
MAXSIZE=500MB,
FILEGROWTH=20%)
LOGON
(NAME=Tour_log1,
FILENAME='F:
\log\Tourlog1.ldf',
SIZE=10MB,
MAXSIZE=100MB,
FILEGROWTH=10%)
数据库自动收缩
ALTERDATABASETourMDB
SETAUTO_SHRINKON
表1
CREATETABLEtb_User
(User_idchar(8)CONSTRAINTpk_useridPRIMARYKEYCLUSTERED,
User_namenvarchar(20)NOTNULL,
User_pwdvarchar(20)NOTNULL,
User_rightvarchar(10)NOTNUL
)
第1位(固定):
1;
第2、3、4位(数字):
国家;第5、6位(数字):
省份;第7、8、9、10位(数字):
编号
表2
CREATETABLEtb_Line
(Line_noCHAR(10)check(Line_noLIKE’[1][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)PRIMARYKEY,
Line_startNVARCHAR(10),
Line_endNVARCHAR(10),
Line_daysTINYINT,
Line_sightNVARCHAR(80)
Line_designerNVARCHAR(8)
)
第1位(固定):
2;
第2、3、4位(数字):
国家;第5、6位(数字):
省份;第7、8、9、10位(数字):
编号
表3
CREATETABLEtb_Order
(Order_noCHAR(10)check(Order_noLIKE’[2][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)PRIMARYKEY,
Order_goSMALLDATETIME,
Order_backSMALLDATETIME,
Order_standardCHAR(4)CHECK(Order_standard)IN(‘豪华’,‘经济’),
Order_priceSMALLMONEY,
Order_discoutCHAR(4),
Line_noCHAR(10)REFERENCEStb_Line(Line_no))
第1位(固定):
3;
第2、3、4(数字):
国籍;第5、6、7位(数字):
编号
表4
CREATETABLEtb_Guide
(Guide_noCHAR(7)check(Guide_noLIKE’[3][0-9][0-9][0-9][0-9][0-9][0-9]’)PRIMARYKEY,
Guide_idCHAR(18)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 旅游 管理 系统 剖析