KTV管理系统.doc_第1页
KTV管理系统.doc_第2页
KTV管理系统.doc_第3页
KTV管理系统.doc_第4页
KTV管理系统.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品资料 数据数据库库技技术术 课课程程设计设计 课题课题 KTV管理系管理系统统 班班级级 08电电子商子商务务B 学号学号 2008012119 姓名姓名 张张婷婷婷婷 2010年年 7月月 1日日 2010 年年 7 月月 8 日日 精品资料 目目录录 1 需求分析 需求分析 3 1 1 现实现实需求分析需求分析 3 1 2 系系统统需求分析需求分析 3 1 3 数据数据库库需求分析需求分析 3 1 4 系系统统功能模功能模块块分析分析 4 1 5 据字典据字典 5 2 数据数据库库概念概念设计设计 6 2 1 局部概念模式局部概念模式设计设计 6 2 2 全局概念模式全局概念模式设计设计 10 3 数据数据库逻辑设计库逻辑设计 11 3 1 数据模型的映射数据模型的映射 11 3 2 数据数据库结库结构构优优化和完整性化和完整性设计设计 12 3 3 数据数据库库的的逻辑结逻辑结构构设计设计 13 4 数据 数据库库物理物理设计设计 17 4 1 建建库库 17 4 2 建表建表 18 4 3 将数据插入表中将数据插入表中 21 4 4 建立建立视图视图 23 精品资料 4 5 数据数据库库索引的建立索引的建立 23 5 数据的数据的实实施与施与维护维护 24 5 1 查询查询 24 5 2 触触发发器器 25 5 3 存存储过储过程程 28 精品资料 1 需求分析 需求分析 1 1 现实现实需求分析需求分析 随着社会的发展和人民生活水平的提高 人们对精神文化生活的需求也在不断的增加 KTV 的出现和发展满足了人们这种需求 各行业的发展和计算机系统的结合越来越紧密 很多歌厅借助现代高科技的所带来的优质的服务 大大提高服务的档次 提升了企业的管理 水平 提升了竞争力达到管理的系统化 规范化 1 2 系系统统需求分析需求分析 KTV 管理信息系统主要是完成对歌厅的管理 包括预定 开房 结账 维修 打扫 和各种 相关信息的管理的录入和查询 用户登入系统 输入用户名和密码 系统从数据库的用户信息表进行核对 完全一致这进入 系统 房间或会员信息的增加时 系统会把这些信息写入到数据库中的房间和会员信息表中 若客人取消预定 则在预定单表中删除这些信息 当结账时 通过房间编号从房间消费表中 读取消费信息 结账后 就把此行信息删除 写入到结账表中 如果是会员 消费的信息会写 入到会员信息表中 消费的次数和消费的金额都将累加 如果消费金额达到一定的程度 这 签单的金额度将发生变化 1 3 数据数据库库需求分析需求分析 本系统是为一般歌厅设计的 KTV 管理系统 程序要求能录入一些基本的资料 需要对房 间完成对房间的预定 开房 结账等基本信息操作 并可以对这些信息进行统计 根据以上 的需求 数据库的设计 必需满足一下几点 记录房间的基本信息 房间号 房间名称 房间类型 房间的价格 房间状态 记录会员的基本信息 会员编号 会员姓名 固定电话 手机 地址 签单的额度 消费次 数 消费积分 备注 记录预订单信息 包括预订单编号 客户名称 房间编号 房间类型 房间价格 客户地 电话 人数 开房日期 开房时间 操作员 预付金额 会员编号 预定日期 备注 精品资料 记录房间消费信息 开房单编号 房间编号 房间类型 房间价格 人数 客户名称 客户 电话 开房时间 预付金额 付款方式 折扣 消费金额 开房日期 会员编号 备注 记录账单信息 账单编号 房间编号 房间类型 房间价格 客户名称 开房时间 关房时 间 预付金额 付款方式 折扣 消费金额 开房日期 会员的编号 记录维修单信息 维修单编号 房间编号 维修原因 维修结果 记录维修单历史 维修单编号 房间编号 维修原因 维修结果 记录用户信息 包括用户 ID 用户名 用户密码 用户权限代码 用户类型 1 4 系系统统功能模功能模块块分析分析 1 根据以上的需求分析 根据以上的需求分析 KTV 的功能模的功能模块块如下如下 KTV 管理系统 基本信息基本业务查询统计系统设置退出系统 房间信息 会员信息 预定 开房 结账 维修 打扫 房间 管理 信息 预订单 开房单 维修单 账单查询 房间查询 状态 类型 会员查询 用户设置 密码设置 用户查询 图图一系一系统统功能模功能模块图块图 1 功能模功能模块说块说明 明 精品资料 基本信息模块 用于记录房间几会员的基本信息 基本业务模块 主要处理房间的预定 开房 结账以及维修等项目 查询统计模块 主要用于对房间基本信息 会员基本信息的查询 系统设置模块 主要是 通用户设置 密码的设置 来加强对用户的管理 并且提高 系统的安全性 退出系统 1 5 据字典据字典 数据字典主要是对数据结构 数据元素 数据存储和数据处理进行更详细的对应 1 房房间间基本信息基本信息 含义说明 KTV 房间的基本信息 原始资料 组成 房间号 房间名称 房间类型 房间的价格 房间状态 2 会会员员基本信息 基本信息 含义说明 KTV 的顾客可通过办理会员卡成为 KTV 的会员 会员可以享受一些打折 积分 换金钱优惠 会员基本信息表记录了所有会员的信息 是原始数据 组成 会员编号 会员姓名 固定电话 手机 地址 签单的额度 消费次数 消费积分 备注 3 房房间间消消费费信息信息 含义说明 记录当某个房间被预定或使用后发生的所有消费 结账时需要用到这些数据 组成 订单编号 客户名称 房间编号 房间类型 房间价格 客户地电话 人数 开房日期 开房时间 操作员 预付金额 会员编号 预定日期 备注 4 预预定定单单信息信息 含义说明 某些客户为了预防到期没房可以住 所以向 KTV 预定房间 预定需要交纳一定的 定金 而且产生了预订单 依次作为预定的凭证 事后无论哪一方违约 可以此为证据 组成 账单编号 房间编号 房间类型 房间价格 客户名称 开房时间 关房时间 预付金额 付款方式 折扣 消费金额 开房日期 会员的编号 精品资料 5 账单账单信息 信息 含义 用于记录消费时的账单的基本信息 组成 编号 房间编号 房间类型 房间价格 人数 客户名称 客户电话 开房时间 预付金 额 付款方式 折扣 消费金额 开房日期 会员编号 备注 6 维维修修单单信息信息 含义说明 随着时间的推移或者使用不当 房间里的设备等会被损坏 因此要对这些房间进 行维修 维修单记录了维修中的基本元素 组成 维修单编号 房间编号 维修原因 维修结果 7 维维修修历历史史 含义 间不一定只修过一次 维修历史表将维修从时间的角度进行管理 组成 维修单编号 房间编号 维修原因 维修结果 8 用用户户信息信息 含义 用于存储用户登录系统的基本信息 组成 用户 ID 用户名 用户密码 用户权限代码 用户类型 2 数据数据库库概念概念设计设计 2 1 局部概念模式局部概念模式设计设计 本系统的数据库所涉及到的实体有房间实体 会员实体 预单实体 开房单实体 账单实 体 维修单实体 维修单历史实体 用户实体 下面为各实体的 E R 图 1 房 房间实间实体体 E R 图图 属性包括 房间号 房间名称 房间类型 房间的价格 房间状态 精品资料 房间 编号 名称类型 价格 状态 房房间实间实体体 E R 图图 2 会会员实员实体体 ER 会员编号 会员姓名 固定电话 手机 地址 签单的额度 消费次数 消费积分 备注 编号 名称 时间 日期 会员 会会员实员实体体 E R 图图 3 预订单实预订单实体体 E R 账单编号 房间编号 房间类型 房间价格 客户名称 开房时间 关房时间 预付金额 付 款方式 折扣 消费金额 开房日期 会员的编号 精品资料 预订单实体 编号 名称日期 会员编号 预订单实预订单实体体 ER 图图 4 开房开房实实体体 E R 编号 房间编号 房间类型 房间价格 人数 客户名称 客户电话 开房时间 预付金额 付 款方式 折扣 消费金额 开房日期 会员编号 备注 开房单实体 编号 开房时间客户名称 会员编号 开房开房实实体体 E R 图图 5 账单账单信息信息实实体体 E R 图图 编号 房间编号 房间类型 房间价格 人数 客户名称 客户电话 开房时间 预付金额 付 款方式 折扣 消费金额 开房日期 会员编号 备注 精品资料 编号 房间编号 备注 账单信息实体 账单账单信息信息实实体体 E R 图图 6 维维修修单单信息信息 维修单编号 房间编号 维修原因 维修结果 维修单实体 维修单编号 房间编号 维修缘由 维维修修单实单实体体 E R 图图 7 维维修修历历史史 E R 图图 维修单编号 房间编号 维修原因 维修结果 维修单实体 编号 房间编号 维修结果 维修缘由 维维修修单历单历史史实实体体 E R 图图 5 用用户户信息信息 E R 图图 用户 ID 用户名 用户密码 用户权限代码 用户类型 精品资料 用户实体 编号 姓名 密码 权限 类型 用用户实户实体体 E R 图图 2 2 全局概念模式全局概念模式设计设计 会员 开房 预定 消费 房间 开房 账单 设 置 维修 查看 用户 各各实实体之体之间间关系关系 E R 图图 在 SQL 数据中 各表的关系如下 精品资料 3 数据数据库逻辑设计库逻辑设计 3 1 数据模型的映射数据模型的映射 1 数据数据实实体的映射体的映射 房间信息 房间号 房间名称 房间类型 房间的价格 房间状态 会员信息 会员编号 会员姓名 固定电话 手机 地址 签单的额度 消费次数 消费积分 备注 预订单信息 预订单编号 客户名称 房间编号 房间类型 房间价格 客户地电话 人数 开房日期 开房时间 操作员 预付金额 会员编号 预定日期 备注 房间消费信息 开房单编号 房间编号 房间类型 房间价格 人数 客户名称 客户电话 开房时间 预付金额 付款方式 折扣 消费金额 开房日期 会员编号 备注 账单信息 账单编号 房间编号 房间类型 房间价格 客户名称 开房时间 关房时间 预 付金额 付款方式 折扣 消费金额 开房日期 会员的编号 维修单信息 维修单编号 房间编号 维修原因 维修单历史 维修单编号 房间编号 维修原因 维修结果 精品资料 用户登录信息 用户 ID 用户名 用户密码 用户权限代码 用户类型 3 2 数据数据库结库结构构优优化和完整性化和完整性设计设计 1 建立表之 建立表之间间的的联联系 如系 如图图 2 建立存 建立存储过储过程程 ExistByID 查查看某个表中是否存在某个整形字段等于某个看某个表中是否存在某个整形字段等于某个值值的的记录记录 use KTVDB GO 查看某个数据表中 是否存在某个字段等于某个值的记录 create Proc dbo ExistByID strTableName varchar 225 strFiledName varchar 225 intFieldValue int bitResult bit Output 精品资料 as set Nocount on declare strSQL varchar 3000 declare nCount int 构建存储符号条件的记录数的临时表 if Object ID DBO tmpTable is null create 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 strSQL exec strSQL 在临时表中返回存储记录数 select top 1 nCount tmpField from tmpTable order by tmpField drop table tmpTable if nCount 0 select bitResult 1 else select bitResult 0 go 3 3 数据数据库库的的逻辑结逻辑结构构设计设计 精品资料 1 数据数据库库中的八个表的中的八个表的逻辑结逻辑结构构图图 为 表表 4 1 用用户户登入信息表登入信息表 UseInfo 字段名字段说明数据类型字段长度必填字段主键 UserID 用户 ID char2是是 Username 用户姓名 varchar8否否 UserPwd 用户密码 varchar10是否 UserType 用户权限代码 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手机varchar20否否 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人数int4否否 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否否 ClientCount人数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否否 RoomPrice 房间价格 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 维修缘由 varchar50否否 表表 4 8 维维修修单历单历史表史表 RepairHistory 字段名字段说明数据类型字段长度必填字段主键 RepairHisID 维修编号 char3是是 RoomID 房间编号 char2是否 Remakr 维修缘由 varchar50否否 RemakrAfter 维修结果 varchar50否否 精品资料 4 数据 数据库库物理物理设计设计 物理设计的目的不仅要保证存储数据的适当结构 而且要以适当的方式对性能提供保证 数据库物理设计主要涉及以下两方面的工作 数据库的数据文件的分布结构 确定索引的结果 4 1 建建库库 IF exists select from sysdatabases where name KTVDB drop database KTVDB create database KTVDB on name KTVDB dat filename D KTVDB KTVDB MDF SIZE 5MB maxsize 20MB filegrowth 2MB LOG ON name KTVDB log filename D KTVDB KTVDB ldf size 2MB filegrowth 15 4 2 建表建表 1 用用户户登登录录 use KTVDB GO create table UseInfo 精品资料 UserID char 2 primary key not null Usename varchar 10 UsePwd varchar 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 varchar 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 ClientTel 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 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 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 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 8RepairHistory 4 4 建立建立视图视图 创造视图的好处是 可以在别的视图或者用户自定义函数中 按照各种不同条件过滤该视图的 检索数据而不要各自内在构造复杂的检索条件并在相应的表中检索数据 为用户登录表创建视图 精品资料 4 5 数据数据库库索引的建立索引的建立 索引可加快查询的 还可以对数据进行唯一的标识 现在为个张表的主键建立索引 为 UseID RoomID MemberID DestineID RoomConsumedID CheckID RepairID RepairHisID 创建 索引 use KTVDB GO create 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 index index RoomConsumedID on RoomConsumed RoomConsumedID create index index CheckID on CheckInfo CheckID create index index RepairID on RepairInfo RepairID create index index RepairHisID on RepairHistory RepairHisID 精品资料 5 数据的数据的实实施与施与维护维护 5 1 查询查询 1 嵌套嵌套查询查询 查询房间信息表中 房间状态为空并且不在维修单信息表中的房间的所有信息 同时显示 这些房间可以正常营业 use KTVDB GO if exists select from RoomInfo where RoomID not in select RoomID from RepairInfo and RoomState 空 begin print 这些房间可以正常营业 end 2 变变量量查询查询 查找积分比小文多的会员的所有信息 此代码中用到变量 变量有很大的灵活性 可以通过直接改变赋值来进行各种不同的查询 精品资料 5 2 触触发发器器 1 结账结账的的时间时间一般有一般有结账时结账时系系统统直接直接给给出 不能修改 如果修改了 出 不能修改 如果修改了 则则会会给给出警告 并且修出警告 并且修 改失改失败败 use KTVDB GO create trigger 结账时间修改 on CheckInfo for update as if update EndTime begin print 结账失败 raiserror 安全警告 结账日期不能修改 结账时由系统直接给出 16 1 rollback transaction end go 现在修改EndTime中的数据 系统将给出如下警告 精品资料 2 创创建一个触建一个触发发器 器 查询查询会会员员信息 如果消信息 如果消费积费积分超分超过过 10000 分 分 则签单额则签单额度可以增加度可以增加 2000 元 元 use KTVDB GO create trigger 签单额度增加 on MemberInfo for update as if exists select from MemberInfo where ConsumeIntegral 10000 begin update MemberInfo set SignCheck SignCheck 2000 end 例如会员小超 原来的签单额度为 修改后的签单额度为 精品资料 3 更新住房信息 更新住房信息时时 同 同时时也会更新会也会更新会员员表的金表的金额额和消和消费费的次数的次数 create trigger RoomConsumed insert on dbo RoomConsumed for insert as update M set M ConsumedTime M ConsumedTime 1 M SignCheck M SignCheck RC RoomPrice from MemberInfo as M inner join RoomConsumed as RC ON M MemberID RC MemberID 向表中插入数据 对比修改前后的 MemberInfo 修改前的表修改前的表 修改后的表修改后的表 4 如果某个房 如果某个房间间有人住 有人住 则则房房间间的状的状态为态为使用中使用中 use KTVDB GO 如果某个房间有人住时 则房间状态为使用中 如果无人住 则为空房 create trigger RoomState update1 精品资料 on dbo RoomConsumed for update as if exists select ClientName from RoomConsumed begin update RoomInfo set RoomState 使用中 from RoomInfo where RoomID in select RoomID from RoomConsumed end 向RoomConsumed 表中插入信息 再查看RoomID表 修改前修改前 修改后修改后 5 3 存存储过储过程程 1 验证验证用用户户名和密名和密码码 并 并输输出出验证结验证结果 用果 用户编户编号 真号 真实实姓名 用姓名 用户类户类型型 use KTVDB GO 验证用户名和密码 并输出验证结果 用户编号 真实姓名 用户类型 精品资料 create proc dbo IsValidUser Usename varchar 10 UsePwd varchar 10 UserID int output UseType bit output 输出值 VB组建自定义的枚举数 为合法用户 为用户名错 为密码错 ReturnValue int output as declare RightPwd varchar 10 select top 1 RightPwd UsePwd UserID UserID UseType UseType from UseInfo where Usename Usename order by Usename 用户名不存在 if RightPwd is null begin set ReturnValue 2 return end 用户名不在 则比较密码 if RightPwd UsePwd begin set ReturnValue 3 return end 2 建立存 建立存储过储过程程计计算算结账时结账时的金的金额额 use KTVDB 精品资料 GO create ProCedure up check cOpenTime datetime cCloseTime datetime cRoomID CHAR 4 cPrice float cAgio int cPrepay int Money float output as select cPrice RoomPrice from RoomInfo where RoomID cRoomID select cOpenTime OpenTime from

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论