【安博培训笔记】Oracle宾馆管理系统-TI_综合项目20130917
------------------------------
--实现主键自增
create table t28(
id number primary key,
name varchar2(20)
)
insert into t28(name) values('zhangsan');
create sequence seq_name222;
create or replace trigger tir_t28
before insert or update on t28 for each row
begin
select seq_name222.nextval
into :new.id from dual;
end;
create or replace trigger tir_t28
before insert on t28 for each row
begin
select seq_name222.nextval
into :new.id from dual;
end;
select * from t28;
update t28 set name = 'shihua' where id = 1;
-------------------------------------------
/*宾馆管理系统-综合项目
第一部分 案例描述
案例目的
学习并巩固oracle数据库编程技术,包括存储过程、触发器、索引、视图、序列、同义词、事务、游标等,培养学生对数据库设计和程序的能力。
案例难度
★★★★
案例覆盖技能点
1、 存储过程
2、 触发器
3、 索引
4、 视图
5、 序列、同义词
6、 事务
7、 游标
8、 函数
推荐案例完成时间
2天
适用课程和对象
Oracle数据库设计
第二部分 需求和开发环境
使用技术和开发环境
Oracle 10g
项目背景
随着我国改革开放的深入,宾馆服务业的竞争日益激烈,一个宾馆要想立于不败之地,就必须提高整体竞争能力,变革宾馆的管理模式,提高管理水平,实施信息化建设无疑是实现这一目的的必由之路和明智之举。目前,我国宾馆服务业的信息化管理进展缓慢,在激烈的竞争中,如何能把握机会,保持自己的优势,立于不败之地呢?这就需要提供最好的服务,提供最完善的设施和最先进的技术。一个成功的宾馆,其经营者不仅要提高服务水平和服务质量,从而提高客房占有率和回头率,还要有好的工作效率,并控制成本。在信息时代,更重要的是还必须要有一个完善的信息管理系统,以方便客人和更好地管理宾馆。
信息管理系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变得越来越普及。传统的登记表的做法极大的影响了工作流程效率和数据的正确性、完整性、安全性,已经逐渐落后于时代。利用软件管理系统代替手工的宾馆管理,将会大大提高工作效率。
案例需求
宾馆的主要活动首先可分为四个部分,即预订管理、入住管理、消费管理和退房结算管理。
预订管理主要包括登记客人的预订信息,查询预订信息,同时还需要注意预订信息不能出现冲突现象,例如两个客人都预订了同一天的同一个房间,这是不允许的;此外,在快到预订时确定的客人预抵时间时,接待人员要打电话证明客人是否能按时入住,如果不能,就会把预订单作废,或者称为失效;
除了按流程划分的这四个部分之外,还有两个部分:客房管理和用户管理。;这两部分信息需要在客人入住以前提前设定好。
*/
/*1. 用户权限管理
用户管理是管理系统的使用者,主要包括前台接待人员、前台收银员、餐厅服务员等,他们的权限按其身份不同而不同。
表名 hotel_t_User(用户表)
列名 描述 数据类型(精度范围) 空/非空 约束条件
userid 用户编号 Number 非空 主键(自增)
username 用户名称 VARCHAR2(20) 非空
userpassword 密码 VARCHAR2(20) 非空
truename 真实姓名 VARCHAR2(20) 非空 */
drop table hotel_t_User;
Create table hotel_t_User(
userid number primary key not null,--自增
username varchar2(20) not null,
userpassword varchar2(20) not null,
truename varchar2(20) not null
);
select * from hotel_t_user;
---------------
---------------------------
drop sequence seq_hotel_t_User;
create sequence seq_hotel_t_User;
drop trigger tir_hotel_t_User;
create or replace trigger tir_hotel_t_User
before insert or update on hotel_t_User for each row
begin
select seq_hotel_t_User.nextval
into :new.userid from dual;
end;
---------------
insert into hotel_t_User(username,userpassword,truename)
values('shihua','shihua','shihua');
---------------------
/*表名 hotel_t_Role(角色表)
列名 描述 数据类型(精度范围) 空/非空 约束条件
roleid 用户编号 NUMBER 非空 主键(自增)
rolename 用户名称 VARCHAR2(20) 非空*/
create table hotel_t_Role(
roleid number primary key not null,--自增
rolename varchar2(20) not null
);
drop sequence seq_hotel_t_Role;
create sequence seq_hotel_t_Role;
drop trigger tir_hotel_t_Role;
create or replace trigger tir_hotel_Role
before &nbs