网上火车票订票系统的数据库设计doc.docx
- 文档编号:8741204
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:194.78KB
网上火车票订票系统的数据库设计doc.docx
《网上火车票订票系统的数据库设计doc.docx》由会员分享,可在线阅读,更多相关《网上火车票订票系统的数据库设计doc.docx(15页珍藏版)》请在冰豆网上搜索。
网上火车票订票系统的数据库设计doc
网上火车票订票系统的数据库设计与实现
班级:
10级工程管理系
组成员:
2班李霞58
2班陆静61
1班孙隆祥33
系统名称:
网上火车票订票系统
一、系统需求(孙隆祥)
A.该“网上订票系统”只是对数据库应用技术的一个样本数据库的实例,重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型到ER图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的Select查询语句的使用。
B.系统结构简述:
本系统包括六个实体:
客户、订票单、退票单、车票、票存系统实体之间的关系转换为其他一个表:
记录(注:
车票和票存系统之间为多对多的关系)
C.该数据库要进行如下数据处理
1)要求查询客户的所有信息:
输出:
身份证号,姓名,用户名,联系电话,银行卡类型,银行卡号,籍贯,类型
2)要求查询车票的所有信息:
输出:
车次,出发站,目的站,座位类型,座位号,车票价格,发车时间,到站时间
3)要求查询某一客户订票单的信息:
输入:
姓名输出:
订票单号,订票时间,乘车日期,订票数量
4)要求查询客户所订购的车票信息
输入:
姓名输出:
车次,出发站,目的站,发车时间,到站时间,车票价格
5)客户要查询自己的退票信息
输入:
姓名输出:
退票单号,退票时间,退票数量,手续费
6)查询某一票存系统的记录信息输入:
票存系统编号
输出:
记录数量,记录时间,出入账金额,出入账类型
7)插入数据输入:
要插入数据的各个属性
8)修改某一客户的联系电话输入:
要修改客户的身份证号,新的电话
二、ER图(陆静)
三、关系模式(李霞,陆静)
系统中实体有:
客户,订票单,改签单,退票单,车票,票存系统关系模式:
客户(身份证号,姓名,用户名,联系电话,银行卡类型,银行卡号,籍贯,类型)说明:
属性中“身份证号”是主键,“类型”的取值为(学生票,普通票)
订票单(订票单号,订票时间,乘车日期,订票数量,身份证号)
说明:
属性中“乘车日期”的格式为:
-__-__(_代表数字)
退票单(退票单号,退票时间,退票数量,手续费,车票编号)
车票(车票编号,车次,岀发站,目的站,座位类型,座位号,车票价格,发车时间,到站时间,类型,订票单号)
说明:
属性中“座位类型”取值为(软卧,硬卧,软座,硬座,无座),“类型”的取值为(学生票,普通票)
票存系统(票存系统编号,票存系统地址)
记录(车票编号,票存系统编号,记录日期,记录时间,出入账金额,出入账类型,记录数量)
说明:
属性中“票存系统编号”和“票存系统地址”是主键,也是外键。
四、物理设计(李霞)
表1.客户表结构
字段名
类型
特殊属性
身份证号
char(18)
主健
姓名
char(10)
notnull
联系电话
char(10)
用户名
char(10)
notnull
银行卡类型
char(10)
notnull
银行卡号
char(20)
notnull
籍贯
char(10)
类型
char(10)
表2.订票单表结构
字段名
类型
特殊属性
订票单号
char(10)
主健
订票时间
char(10)
notnull
乘车日期
char(10)
notnull
订票数量
int
notnull
身份证号
char(18)
notnull
表3.退票单表结构
字段名
类型
特殊属性
退票单号
char(10)
主健
退票时间
char(10)
notnull
退票数量
int
notnull
手续费
char(6)
notnull
表4车票表结构
字段名
类型
特殊属性
车票编号
char(10)
主健
车次
char(10)
notnull
出发站
char(10)
notnull
目的站
char(10)
notnull
座位类型
char(10)
notnull
座位号
char(10)
notnull
车票价格
char(10)
notnull
发车时间
char(10)
notnull
到站时间
char(10)
notnull
类型
char(10)
订票单号
char(10)
表5.票存系统表结构
字段名
类型
特殊属性
票存系统编号
char(10)
主健
票存系统地址
char(10)
notnull
表6记录表结构
字段名
类型
特殊属性
车票编号
char(10)
主健
票存系统编号
char(10)
notnull
记录日期
char(10)
notnull
记录时间
char(10)
notnull
出入账金额
char(6)
notnull
出入账类型
char(10)
notnull
记录数量
int
notnull
五、系统实现(陆静,李霞,孙隆祥)
1数据库及其基本表的建立
数据库的建立用企业管理器,基本表的建立用T-SQL语言:
数据库名称为:
TO_System
建立数据库的T-SQL代码如下:
--创建数据库
Createdatabaseto_system
On
(name=to_system_data,
filename='e:
\lls\to_system_data.mdf,
size=4,
maxsize=10,
filegrowth=1)
logon
(name=sm_system」og,
filename='e:
\lls\to_system」og.ldf)
--建立基本表的T-SQL代码
Useto_System
createtable客户
(
身份证号char(18)primarykey,
姓名char(10)notnull,
联系电话char(10),
用户名char(10)notnull,
银行卡类型char(10)notnull,
银行卡号char(20)notnull,
籍贯char(10),
类型char(10),
check(类型in('学生票’,'普通票'))
)
createtable订票单
(订票单号char(10)primarykey,订票时间char(10)notnull,乘车日期char(10)notnull,订票数量intnotnull,身份证号char(18)notnull,foreignkey(身份证号)references客户(身份证号))createtable车票
(车票编号char(10)primarykey,车次char(10)notnull,出发站char(10)notnull,目的站char(10)notnull,座位类型char(10)notnull,座位号char(10)notnull,车票价格intnotnull,发车时间char(20)notnull,到站时间char(20)notnull,类型char(10),订票单号char(10),foreignkey(订票单号)references订票单(订票单号),check(座位类型in('硬座','硬卧','软卧','软座',无座')),check(类型in('学生票','普通票'))
)
createtable退票单(退票单号char(10)primarykey,车票编号char(10)notnull,退票时间char(10)notnull,退票数量intnotnull,手续费char(6)notnull,foreignkey(车票编号)references车票(车票编号))
createtable票存系统(票存系统编号char(10)primarykey,票存系统地址char(10)notnull
)
createtable记录(车票编号char(10),票存系统编号char(10),记录日期char(10)notnull,记录时间char(10)notnull,出入账金额char(6)notnull,出入账类型char(10)notnull,记录数量intnotnull,primarykey(车票编号,票存系统编号),
foreignkey(车票编号)references车票(车票编号),
foreignkey(票存系统编号)references票存系统(票存系统编号))
输入数据:
表一、客户表
','李丽','月亮','','建设银行','297','河北','学
生票')
'','李月','小星星','','交通银行','274','河
Insertinto
客户values(
'',张'三',小草','
','工商银行','382',
'浙江',
'普
通票')
Insertinto
客户values(
'',张'思','凤姐'
'','建设银行','281
','河南
J
学生票')
Insertinto
客户values(
'',张'武','大树'
'','工商银行','728
','湖南
J
普通票')
表二、订票单
Insertinto
订票单values(
‘E9','2012-5-20
','2012-6-26','1'
'')
Insertinto
订票单values(
‘E8','2012-5-20
','2012-6-27','1'
'')
Insertinto
订票单values(
‘E7','2012-5-21
','2012-6-26','1'
'')
Insertinto
订票单values(
‘E6','2012-5-21
','2012-6-27','1'
'')
Insertinto
订票单values(
‘E5','2012-5-22
','2012-6-28','1'
'')
Insertinto
订票单values(
‘E4','2012-5-23
','2012-6-26','1'
'728')
表三、车票
Insertinto
车票values(
‘9','K123','天津'
'河北','硬座','01'
'50','
00:
00','01:
00
','学生票','
E9')
Insertinto
车票values(
‘8','K234','天津'
'河南','无座','02'
'60','
01:
00','02:
00
','学生票','
E8')
Insertinto
车票values(
‘7','K345','北京'
'广东','硬卧','03'
'70','
02:
00','03:
00
','普通票','
E7')
Insertinto
车票values(
‘6','1111','山西'
'浙江','软卧','04'
'80','
03:
00','04:
00
','普通票',
'E6')
Insertinto
车票values(
‘5','T123','北京'
'河南','硬座','05'
'90','
04:
00','05:
00
','学生票','
E5')
Insertinto
车票
values(‘4','K123
','天津','湖
南','
五
座','06','100','05:
00'
'06:
00','普通票
','E4')
表四、退票单
Insertinto
退票单values(
‘D9','2012-5-21
','1','5','9')
Insertinto
退票单values(
‘D8','2012-5-21
','1','10','8')
Insertinto
退票单values(
‘D7','2012-5-22
','1','5','7')
表五、票存系统
Insertinto
票存系统values(‘000000001','
地址一')
Insertinto
票存系统values(‘000000002','
地址二')
Insertinto
票存系统values(‘000000003','
地址三')
'','李美','小太阳','','中国银行','275','广
东','普通票')
Insertinto
票存系统values(‘000000004'
'地址四')
Insertinto
票存系统values(‘000000005'
'地址五')
Insertinto
票存系统values(‘000000006'
'地址六')
表六、记录
Insertinto
记录values(‘6','000000001
','2012-5-21
','08:
00'
'80'
网银','1')
Insertinto
记录values(‘5','000000002
','2012-5-22
','09:
00'
'90'
网银','1')
Insertinto
记录values(‘4','000000003
','2012-5-23
','10:
00',
'100'
网银','1')
2、创建索引
Createindexindex_idon
Createindexindex_
Select姓名,联系电话,银行卡类型,银行卡号,籍贯,类型From客户sp_helptextselect*from--创建视图Createview
As
Select姓名,客户.身份证号,订票单.订票单号,车次,座位号,车票价格,发车时间,到站时间
From车票innerjoin订票单on车票.订票单号=订票单.订票单号innerjoin客户on客户.身份证号=订票单.身份证号select*from客户所订购的车票
--创建视图3
Createview李美退的车票信息
As
Select手续费,车次,车票价格,发车时间,到站时间
From退票单innerjoin车票on车票.车票编号=退票单.车票编号innerjoin订票单on订票单.订票单号=车票.订票单号innerjoin客户on客户.身份证号=订票
单.身份证号
Where姓名='李美'
select*from
李美退的车票信息
--创建视图4
Createview
记录表
as
Select车票编号,记录日期,记录时间,出入账金额
From记录
--创建视图5
createview票存信息
as
select车票.车票编号,票存系统.票存系统编号,记录时间
from车票,记录,票存系统
where车票.车票编号=记录.车票编号and记录.票存系统编号=票存系统.票存系统编号
select*from票存信息
4、创建存储过程
1、要求查询客户的所有信息
(1)知道客户姓名
Createprocedure客户信息
@客户姓名char(10)
As
Select身份证号,姓名,用户名,联系电话,银行卡类型,银行卡号,籍贯,类型
From客户
Where姓名=@客户姓名
(2)知道身份证号
Createprocedure客户信息
@身份证号char(18)
As
Select身份证号,姓名,用户名,联系电话,银行卡类型,银行卡号,籍贯,类型
From客户
Where身份证号=@身份证号
2、要求查询已知车次车票的所有信息
Createprocedure车票信息
@车次char(10)
As
Select车次,出发站,目的站,座位类型,座位号,车票价格,发车时间,到站时间
from车票
Where车次=@车次
3、查询某一客户订票单的信息
Createprocedure订票单信息
@姓名char(10)
As
Select订票单号,订票时间,乘车日期,订票数量
From订票单
Where身份证号in
(select身份证号from客户
Where姓名=@姓名)
4、查询客户所订购的车票信息
Createprocedure客户的车票信息
@姓名char(10)
As
Select车次,出发站,目的站,发车时间,到站时间,车票价格From车票
Where订票单号in
(select订票单号from订票单
Where身份证号in
(Select身份证号from客户Where姓名=@姓名))5.客户要查询自己的退票信息Createprocedure客户退票信息
@姓名char(10)
As
Select退票单号,退票时间,退票数量,手续费
From退票单
Where车票编号in
(select车票编号from车票
Where订票单号in
(select订票单号from订票单
Where身份证号in
(select身份证号from客户Where姓名=@姓名)))6.查询某一票存系统的记录信息
Createprocedure记录信息@票存系统编号char(10)As
Select记录数量,记录时间,出入账金额,出入账类型
From记录
Where票存系统编号in
(select票存系统编号from票存系统where票存系统编号=@票存系统编号
7.插入数据
(1)插入一个新客户
Createprocedure新客户
@身份证号char(18),
@姓名char(10),
@用户名char(10),
@联系电话char(10),
@银行卡类型char(10),
@银行卡号char(20),
@籍贯char(10),
@类型char(10)
As
Insertinto客户
Values('@身份证号','@姓名','@用户名','@联系电话','@银行卡类型','@银行卡号','@籍贯','@类型')
(2)插入一个新票存系统
Createprocedure新票存系统
@票存系统编号char(10),@票存系统地址char(10)
As
Insertinto票存系统
Values(‘@票存系统编号','@票存系统地址')
8.修改数据
(1)客户补加一个订票单
Createprocedure补订单
@身份证号char(18),
@订票单号char(10),
@订票时间char(10),
@订票数量char(10),
@乘车日期char(10)
As
Insertinto订票单values('@订票单号','@订票时间','@乘车日期','@订票数量','@身份证号')
(2)修改客户的电话号码
Createprocedure修改客户电话号码
@联系电话char(10),
@身份证号char(18)
As
Begin
Update客户
Set联系电话=@联系电话
commitend
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 火车票 订票 系统 数据库 设计 doc