1、KTV管理系统数据库技术课程设计课题 KTV管理系统 班级 08电子商务B 学号 2008012119 姓名 张婷婷 2010年 7月 1日2010 年 7 月 8 日1需求分析:1.1现实需求分析随着社会的发展和人民生活水平的提高,人们对精神文化生活的需求也在不断的增加。KTV的出现和发展满足了人们这种需求。各行业的发展和计算机系统的结合越来越紧密,很多歌厅借助现代高科技的所带来的优质的服务,大大提高服务的档次,提升了企业的管理水平,提升了竞争力达到管理的系统化,规范化。1.2系统需求分析KTV管理信息系统主要是完成对歌厅的管理(包括预定,开房,结账,维修,打扫)和各种相关信息的管理的录入和
2、查询。用户登入系统,输入用户名和密码,系统从数据库的用户信息表进行核对,完全一致这进入系统。房间或会员信息的增加时,系统会把这些信息写入到数据库中的房间和会员信息表中。若客人取消预定,则在预定单表中删除这些信息。当结账时,通过房间编号从房间消费表中读取消费信息。结账后,就把此行信息删除,写入到结账表中。如果是会员,消费的信息会写入到会员信息表中,消费的次数和消费的金额都将累加,如果消费金额达到一定的程度,这签单的金额度将发生变化。1.3数据库需求分析本系统是为一般歌厅设计的KTV管理系统,程序要求能录入一些基本的资料,需要对房间完成对房间的预定,开房,结账等基本信息操作,并可以对这些信息进行统
3、计,根据以上的需求,数据库的设计,必需满足一下几点: 记录房间的基本信息:房间号,房间名称,房间类型,房间的价格,房间状态 记录会员的基本信息:会员编号,会员姓名,固定电话,手机,地址,签单的额度,消费次数,消费积分,备注。 记录预订单信息:包括预订单编号,客户名称,房间编号,房间类型,房间价格,客户地电话,人数,开房日期,开房时间,操作员,预付金额,会员编号,预定日期,备注。 记录房间消费信息:开房单编号,房间编号,房间类型,房间价格,人数,客户名称,客户电话,开房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员编号,备注 记录账单信息:账单编号,房间编号,房间类型,房间价格,客户名
4、称,开房时间,关房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员的编号 记录维修单信息:维修单编号,房间编号,维修原因,维修结果 记录维修单历史:维修单编号,房间编号,维修原因,维修结果 记录用户信息,包括用户ID,用户名,用户密码,用户权限代码,用户类型1.4 系统功能模块分析 1根据以上的需求分析,KTV的功能模块如下: 图一系统功能模块图1 功能模块说明: 基本信息模块:用于记录房间几会员的基本信息 基本业务模块:主要处理房间的预定,开房,结账以及维修等项目。 查询统计模块:主要用于对房间基本信息,会员基本信息的查询 系统设置模块:主要是 通用户设置,密码的设置,来加强对用户的
5、管理,并且提高系统的安全性。 退出系统1.5据字典数据字典主要是对数据结构(数据元素)、数据存储和数据处理进行更详细的对应。1 房间基本信息含义说明:KTV房间的基本信息(原始资料)组成:房间号,房间名称,房间类型,房间的价格,房间状态2 会员基本信息:含义说明:KTV的顾客可通过办理会员卡成为KTV的会员,会员可以享受一些打折,积分换金钱优惠,会员基本信息表记录了所有会员的信息(是原始数据)。组成:会员编号,会员姓名,固定电话,手机,地址,签单的额度,消费次数,消费积分,备注3 房间消费信息:含义说明:记录当某个房间被预定或使用后发生的所有消费(结账时需要用到这些数据)组成:订单编号,客户名
6、称,房间编号,房间类型,房间价格,客户地电话,人数,开房日期,开房时间,操作员,预付金额,会员编号,预定日期,备注4 预定单信息含义说明:某些客户为了预防到期没房可以住,所以向KTV预定房间,预定需要交纳一定的定金,而且产生了预订单,依次作为预定的凭证,事后无论哪一方违约,可以此为证据。组成:账单编号,房间编号,房间类型,房间价格,客户名称,开房时间,关房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员的编号5 账单信息:含义:用于记录消费时的账单的基本信息组成:编号,房间编号,房间类型,房间价格,人数,客户名称,客户电话,开房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员编
7、号,备注6 维修单信息含义说明:随着时间的推移或者使用不当,房间里的设备等会被损坏,因此要对这些房间进行维修,维修单记录了维修中的基本元素组成:维修单编号,房间编号,维修原因,维修结果7 维修历史含义:间不一定只修过一次,维修历史表将维修从时间的角度进行管理组成:维修单编号,房间编号,维修原因,维修结果8 用户信息含义:用于存储用户登录系统的基本信息组成:用户ID,用户名,用户密码,用户权限代码,用户类型 2数据库概念设计21局部概念模式设计本系统的数据库所涉及到的实体有房间实体,会员实体,预单实体,开房单实体,账单实体,维修单实体,维修单历史实体,用户实体,下面为各实体的E-R图1房间实体E
8、-R图,属性包括房间号,房间名称,房间类型,房间的价格,房间状态 房间实体E-R图2.会员实体ER会员编号,会员姓名,固定电话,手机,地址,签单的额度,消费次数,消费积分,备注会员实体E_R图3.预订单实体E-R账单编号,房间编号,房间类型,房间价格,客户名称,开房时间,关房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员的编号预订单实体ER图4 开房实体E-R编号,房间编号,房间类型,房间价格,人数,客户名称,客户电话,开房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员编号,备注开房实体E-R图5账单信息实体E-R图:编号,房间编号,房间类型,房间价格,人数,客户名称,客户
9、电话,开房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员编号,备注账单信息实体E-R图6 维修单信息维修单编号,房间编号,维修原因,维修结果维修单实体E-R图7 维修历史E-R图维修单编号,房间编号,维修原因,维修结果维修单历史实体E-R图5 用户信息E-R图用户ID,用户名,用户密码,用户权限代码,用户类型用户实体E-R图2.2全局概念模式设计各实体之间关系E-R图在SQL数据中,各表的关系如下:3.数据库逻辑设计31数据模型的映射1.数据实体的映射:房间信息(房间号,房间名称,房间类型,房间的价格,房间状态)会员信息(会员编号,会员姓名,固定电话,手机,地址,签单的额度,消费次数
10、,消费积分,备注)预订单信息(预订单编号,客户名称,房间编号,房间类型,房间价格,客户地电话,人数,开房日期,开房时间,操作员,预付金额,会员编号,预定日期,备注)房间消费信息(开房单编号,房间编号,房间类型,房间价格,人数,客户名称,客户电话,开房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员编号,备注)账单信息(账单编号,房间编号,房间类型,房间价格,客户名称,开房时间,关房时间,预付金额,付款方式,折扣,消费金额,开房日期,会员的编号)维修单信息(维修单编号,房间编号,维修原因)维修单历史(维修单编号,房间编号,维修原因,维修结果)用户登录信息(用户ID,用户名,用户密码,用户
11、权限代码,用户类型)3.2数据库结构优化和完整性设计1建立表之间的联系,如图 2建立存储过程ExistByID,查看某个表中是否存在某个整形字段等于某个值的记录use KTVDBGO/*查看某个数据表中,是否存在某个字段等于某个值的记录*/create Proc dbo.ExistByID(strTableName varchar(225),strFiledName varchar(225),intFieldValue int,bitResult bit Output)asset Nocount ondeclare strSQL varchar(3000)declare nCount int/
12、*构建存储符号条件的记录数的临时表 */if Object_ID(DBO.#tmpTable) is nullcreate table #tmpTable(tepField int )else truncate table #tmpTable/*在数据库表中检索符合条件的记录数,并且存储在临时表中*/select strSQL=select count(+strFiledName+) from +strTableName+e+strFiledName+=+convert(varchar(50),intFieldValue)select strSQL=insert #tmpTable +strS
13、QLexec(strSQL)/*在临时表中返回存储记录数*/select top 1 nCount =tmpField from #tmpTable order by tmpField drop table #tmpTableif nCount0select bitResult =1elseselect bitResult =0go3.3数据库的逻辑结构设计1数据库中的八个表的逻辑结构图,为表41 用户登入信息表 UseInfo字段名字段说明数据类型字段长度必填字段主键UserID 用户IDchar2是是Username用户姓名varchar8否否UserPwd用户密码varchar10是否U
14、serType用户权限代码int4否否Remake用户类型varchar8否否 表4-2 房间信息表 RoomInfo字段名字段说明数据类型字段长度必填字段主键RoomID房间编号char2是是RoomName房间名称varchar20否否RoomTypeName房间类型varchar10否否RoomPrice价格float8是否RoomState房间状态char6否否表4-3会员信息表MemberInfo字段名字段说明数据类型字段长度必填字段主键MemberID会员编号char3是是MemberName会员姓名varchar8否否Tel1固定电话varchar20否否Tel2手机varcha
15、r20否否Address地址varchar30否否SignCheck签单额度int4是否ConsumedTime消费次数int4是否ConsumedIntegral消费积分float8是否Remake备注varchar50否否表4-4 预订单信息表DestineInfo字段名字段说明数据类型字段长度必填字段主键DestineID预订单编号char4是是ClientName客户名称varchar10否否RoomID房间编号char2是否RoomType房间类型varchar8否否RoomPrice房间价格float8否否ClientTel客户电话varchar20否否ClientCount人数i
16、nt4否否OpenRoomDate开房日期datetime8是否OpenRoomTime开房时间datetime8是否Waitor操作员varchar10否否Prepry预付金额float8否否Remake备注varchar50否否DestineDate预订日期datetime8是否MemberID会员编号char3否否表4-5 房间消费信息表 RoomConsumed字段名字段说明数据类型字段长度必填字段主键RoomConsumed开房编号char4是是RoomID房间编号char10是否RoomType房间类型varchar2否否RoomPrice房间价格float8否否ClientCou
17、nt人数int8否否ClientName客人姓名varchar20否否OpenTime开房时间datetime4是否ClientTel客户电话varchar8否否Prepay预付定金float8否否Agio折扣int10否否PayMode付款方式varchar8否否OpenDate开房日期datetime8是否Remake备注datetime50是否MemberID会员编号varchar3否否表4-6结账单信息表 CheckInfo字段名字段说明数据类型字段长度必填字段主键CheckID结账单编号char4是是RoomID房间编号char2是否RoomType房间类型varchar10否否Ro
18、omPrice房间价格float8否否ClientName客人姓名varchar10否否Agio折扣int4否否OpenRoomTime开房时间datetime8是否EndTime结账时间datetime8是否Prepay预付定金float8否否PayMode付款方式varchar10否否RoomMoney消费金额float8是否OpenDate开房日期datetime8是否MemberID会员编号varchar3否否表4-7维修单信息表 RepairInfo字段名字段说明数据类型字段长度必填字段主键RepairID维修编号char3是是RoomID房间编号char2是否Remakr维修缘由v
19、archar50否否表4- 8 维修单历史表 RepairHistory字段名字段说明数据类型字段长度必填字段主键RepairHisID维修编号char3是是RoomID房间编号char2是否Remakr维修缘由varchar50否否RemakrAfter维修结果varchar50否否 4数据库物理设计物理设计的目的不仅要保证存储数据的适当结构,而且要以适当的方式对性能提供保证。数据库物理设计主要涉及以下两方面的工作: 数据库的数据文件的分布结构。 确定索引的结果。4.1:建库IF exists(select * from sysdatabases where name =KTVDB)drop
20、 database KTVDBcreate database KTVDBon(name=KTVDB_dat,filename =D:KTVDBKTVDB.MDF,SIZE=5MB,maxsize=20MB,filegrowth =2MB)LOG ON(name =KTVDB_log,filename =D:KTVDBKTVDB.ldf,size=2MB,filegrowth=15%)42建表1 用户登录use KTVDBGOcreate table UseInfo(UserID char(2) primary key not null,Usename varchar(10),UsePwd va
21、rchar(10) not null,UseType int,Remake varchar(10)2房间信息create table RoomInfo(RoomID char(2) primary key not null,Roomname varchar(20),RoomTypeName varchar(10),RoomPrice Float not null,RoomState char(6)3会员信息create table MemberInfo(MemberID char(3) primary key not null,MemberName varchar(8),Tel1 varcha
22、r(20),Tel2 varchar(20),Address varchar(30),SignCheck int not null,ConsumedTime int not null,ConsumeIntegral float not null,Remake varchar(50)4预订单信息create table DestineInfo(DestineID char(4) primary key not null,ClientName varchar(10),RoomID char(2) not null,RoomType varchar(8),RoomPrice Float,Client
23、Tel varchar(20),ClientCount int,OpenRoomDate datetime not null,OpenRoomTime datetime not null,Waitor varchar(10),Prepay float,Remake varchar(50),DestineDate datetime,MemberID char(3)5房间消费信息create table RoomConsumed(RoomConsumedID char(4) primary key not null,RoomID char(2) not null,RoomType varchar(
24、10),RoomPrice Float ,ClientCount int,ClientName varchar(8),OpenTime datetime not null,ClientTel varchar(20),Prepay float,Agio int,PayMode Varchar(8),OpenDate datetime not null,Remake varchar(50),MemberID char(3)6账单信息create table CheckInfo(CheckID char(10)primary key not null,RoomID char(2) not null,
25、RoomType varchar(10),RoomPrice Float ,ClientName varchar(10),Agio int,OpenRoomTime datetime not null,EndTime datetime not null,Prepay float,PayMode Varchar(8),RoomMoney float not null,OpenDate datetime not null,MemberID char(3)7维修单信息create table RepairInfo(RepairID char(3)primary key not null,RoomID
26、 char(2) not null,Remake varchar(50)8维修单历史create table RepairHistory(RepairHisID char(3)primary key not null,RoomID char(2) not null,Remake varchar(50),RemakeAfter varchar(50)4.3 将数据插入表中图4-1 UserInfo 图4-2 RoomInfo 图4-3 MemberInfo图4-4 DestineID 图4-5RoomConsumed图4-6 CheckInfo图4-7RepairInfo图4-8RepairHi
27、story4.4建立视图创造视图的好处是,可以在别的视图或者用户自定义函数中,按照各种不同条件过滤该视图的检索数据而不要各自内在构造复杂的检索条件并在相应的表中检索数据。为用户登录表创建视图4.5数据库索引的建立索引可加快查询的,还可以对数据进行唯一的标识现在为个张表的主键建立索引为UseID ,RoomID,MemberID,DestineID, RoomConsumedID CheckID RepairID RepairHisID 创建索引use KTVDBGOcreate index index_UserID on UseInfo(UserID )create index index_RoomID on RoomInfo(RoomID )create index index_MemberID on MemberInfo (MemberID )create index index_DestineID on DestineInfo (DestineID )create in
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1