进行一个系统开发之前,首先肯定是要进行数据库的设计,在这里我进行了如下数据库的建立,可能存在很多没有考虑到情况,希望能得到各位前辈大神们的指点!
1、用户信息表的建立,它的用途是存储使用本系统的商户的基本信息,包括以下几个字段
2、酒店信息表的建立,它的用途是存储用户注册的酒店的名称,它以用户信息表的用户ID作为外键约束,包括以下几个字段
3、房间信息表的建立,它的用途是存储不同酒店拥有多少个房间,以及房间的基本信息,它以酒店信息表的酒店ID作为外键约束,包括以下几个字段
4、住户信息表的建立,它的用途是存储客户入住的信息,它以房间信息表的序号作为外键约束,包括以下几个字段
建立好这几个基本的表之后,应该还要对这几个表进行一些相关的设置,比如自增字段需要新建序列,新建触发器以及相应视图的建立,以用户信息表为例:
1、新建视图,相应的SQL语句
create or replace view view_users as
select "U_NAME","U_PASSWORD","U_ID","U_STATE","U_IDCARD","U_PHONE","U_ZCSJ"
from USERS;
2、新建序列,相应的SQL语句
-- Create sequence
create sequence S_USERS
minvalue 1
maxvalue 9999999999999999999999999999
start with 21
increment by 1
cache 20;
3、新建触发器,相应的SQL语句
create or replace trigger T_USERS
before insert or update or delete
on USERS
for each row
declare
-- local variables here
begin
select S_USERS.nextval into :new.U_ID from dual;
end T_ROOMINFO;
为了查询数据方便,我还建立了一张总表的视图,通过inner join连接的方式,它包含以下信息
代码如下:
create or replace view view_rzinfo as
select z."ZI_NO",z."ZI_NAME",z."ZI_IDCARD",z."ZI_PHONE",z."ZI_XB",r."RI_MPH",r."RI_LC",r."RI_ROOMTYPE",j."JI_MC"
from ZHINFO z
INNER JOIN ROOMINFO r on r.ri_no = z.zi_rino
inner join jdinfo j on j.ji_id = r.ri_jdid;