mysql酒店管理系统数据表设计
本洒店预订系统共有六张表,分别为管理员信息表、用户信息表、资源分组表、资源表、订单表及订单明细表。
一、管理员信息表adinfo
该表共有三个字段,分别为管理员的登录名、管理员的密码以及管理员的及别
|
字段名 |
字段类型 |
字段大小 |
是否主键 |
是否为空 |
说明 |
|
adname |
varchar |
20 |
是 |
否 |
管理员登录名 |
|
adpwd |
varchar |
20 |
否 |
否 |
管理员登录密码 |
|
adlevel |
int |
|
否 |
否 |
管理员登录级别 |
Sql语句如下:
创建表(创建新表用关键字create table命令)
create table adinfo{
adname varchar(20) primary key,
adpwd varchar(20) not null,
adlevel int not null,
};
插入测试数据(数据插入用关键字insert into表名 values(数据))
insert into adinfo values('yzj','147147','1');
insert into adinfo values('yzg','417417','0');
insert into adinfo values('yzb','714714','0');
二、用户信息表 user
该表共有六个字段,分别为用户登录名、登录密码、联系电话、联系人、性别及电子邮箱
|
字段名 |
字段类型 |
字段大小 |
是否主键 |
是否为空 |
说明 |
|
uname |
varchar |
20 |
是 |
否 |
用户登录名 |
|
pwd |
varchar |
20 |
否 |
否 |
用户登录密码 |
|
telnum |
varchar |
20 |
否 |
否 |
联系电话 |
|
realname |
varchar |
10 |
否 |
否 |
联系人 |
|
gender |
enum |
|
否 |
否 |
性别 |
|
|
varchar |
40 |
否 |
否 |
电子邮箱 |
Sql语句如下:
创建表(创建新表用关键字create table命令)
create table user(
uname varchar(20) primary key,
pwd varchar(20) not null,
telnum varchar(20) not null,
realname varchar(10) not null,
gender enum(‘男’,’女’) not null,
email varchar(40) not null
);
插入测试数据(数据插入用关键字insert into表名 values(数据))
insert into user values('713_txq','713713','1550014741','覃新强','男','713t@sina.com');
insert into user values('128_qxq','128128','1550284741','邱春生','男','128q@sina.com');
insert into user values('915_fxq','915915','1559154741','冯文战','男','915f@sina.com');
insert into user values('841_zxq','841841','1550018441','张妙','女','841z@sina.com');
insert into user values('371_zxq','371371','1550347141','张广厚','男','371z@sina.com');
insert into user values('938_zxq','938938','1559382741','郑恩智','男','938z@sina.com');
insert into user (uname,pwd,telnum,realname,email) values ('144_hxq','144144','1550144741','海明强','144h@sina.com')
最后这一句插入语句写得比较全,并且这里插入少了gender字段,这样的插入该字段将自动插入默认值枚举的第一个值即‘男’
三、资源分组表 rgroup
该表共有五个字段,分别为用分组编号、所属分组、图片路径、分组描述及预定规则描述
|
字段名 |
字段类型 |
字段大小 |
是否主键 |
是否为空 |
说明 |
|
gid |
int |
|
是 |
否 |
分组编号 |
|
gname |
varchar |
10 |
否 |
否 |
所属分组 |
|
gimg |
varchar |
40 |
否 |
否 |
图片路径 |
|
gdetail |
varchar |
200 |
否 |
否 |
分组描述 |
|
gorderdet |
varchar |
300 |
否 |
否 |
预定规则描述 |
Sql语句如下:
创建表(创建新表用关键字create table命令;default 指默认)
create table rgroup(
gid int primary key,
gname varchar(10) not null,
gimg varchar(40) not null,
gdetail varchar(200) not null,
gorderdet varchar(300) not null
);
插入测试数据(数据插入用关键字insert into表名 values(数据))
insert into rgroup values('1','客房','img/kf.jpg','客房是酒店为客人准备用于住宿以及休闲娱乐等服务的场所。家中通常会留有一两间空的房间,以备客人来家做客时留宿,也叫客房。通常客房意指酒店提供的客房。','入住时间:14:00以后。离店时间:12:00以前且只接受一周内的预定');
insert into rgroup values('2','标间','img/bj.jpg','标准间,指卧室、工作区、会客区同在一室,并且有单独卫生间的房间。','入住时间:14:00以后。离店时间:12:00以前且只接受一周内的预定');
insert into rgroup values('3','大床','img/dc.jpg','别于其他普通标准间的两或三张床,大床房只设一张大床','入住时间:14:00以后。离店时间:12:00以前且只接受一周内的预定');
四、资源表 resource
该表共有七个字段,分别为资源编号、所属分组、资源名称、资源等级、资源价格、资源描述及所属状态
|
字段名 |
字段类型 |
字段大小 |
是否主键 |
是否为空 |
说明 |
|
rid |
int |
|
是 |
否 |
资源编号 |
|
rgroup |
int |
|
否 |
否 |
所属分组 |
|
rgid |
varchar |
10 |
否 |
否 |
资源名称 |
|
rlevel |
varchar |
10 |
否 |
否 |
资源等级 |
|
rmoney |
double |
|
否 |
否 |
资源价格 |
|
rdetail |
varchar |
100 |
否 |
否 |
资源描述 |
|
rstatus |
varchar |
10 |
否 |
否 |
所属状态 |
Sql语句如下:
创建表(创建新表用关键字create table命令;default 指默认; decimal指一个小数类型)
create table resource(
rid int not null,
rgroup int not null,
rgid varchar(10) not null,
rlevel varchar(10) not null,
rmoney decimal(9,2) not null,
rdetail varchar(100) not null,
rstatus varchar(10) default '空闲',
primary key(rgid),
key rgroup (rgroup),
constraint rgroup_fk_1 foreign key (rgroup) references rgroup (gid)
);
Primary key 为主建定义 primary key(rid,rgid) 即为两个键共同来做主键,即只有当两个字段同时相同时才能发生重复。(1,1)(1,2)不重复,(2,1)(2,1)重复。
Decimal为SQL Server 数据类型,属于浮点数类型。存储数据范围是:-10^38~10^38-1 的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。
key rgroup (rgroup), 为外键约束的键创建索引
constraint rgroup_fk_1 foreign key (rgroup) references rgroup (gid)
约束该表中rgroup(所属分组)字段要是rgroup(资源分组表)中的gid(分组编号)所有的,即rgroup(所属分组)字段来源于rgroup(资源分组表)中的gid(分组编号)字段。
外键束的用法
外键的定义语法:
[CONSTRAINT symbol] FOREIGN KEY [id]
(index_col_name, ...)
REFERENCES tbl_name
(index_col_name, ...)
[ON DELETE {RESTRICT |
CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT |
CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。
ON DELETE、ON UPDATE表示事件触发限制,可设参数:
RESTRICT(限制外表中的外键改动)
CASCADE(跟随外键改动)
SET NULL(设空值)
SET DEFAULT(设默认值)
NO ACTION(无动作,默认的)
表type里有两个字段一个是id(编号)一个是se(肤色)。表ren中有两个字段一个id(编号)一个是typemod(肤色类型)。
ALTER TABLE ren ADD CONSTRAINT fk_type_model
FOREIGN KEY (typemod)
REFERENCES type(se)
ON UPDATE CASCADE;
第一句为表ren增加约束,且名称设置为fk_type_model
第二句为将表ren字段typemod设置为外键
第三句为外建约束在表type中的se字段上即表ren中typemod字段内容都来源于type表se字段即是说type表中se字段里不存在的数据内容,表ren中也是不能出现
最后一句为联级操作,即是指当type表中se字段内容有改变时,ren表中的typemod字段也会相应的发生改变
Decimal(9,2)小数是指共9位数且保留两位小数(如数字222554.1155887660035结果将为222554.12最后四舍五入了)
插入测试数据(数据插入用关键字insert into表名 values(数据))
insert into resource values('1','1','天字号','vip','188','高端大气','入住');
insert into resource values('2','1','地字号','普通','155','经济实惠','入住');
insert into resource values('3','2','玄字号','vip','199','高端大气','入住');
insert into resource values('4','2','黄字号','普通','166','经济实惠','空闲');
五、订单表 olist
该表共有六个字段,分别为订单编号、提交人、提交时间、处理人、订单状态及备注信息
|
字段名 |
字段类型 |
字段大小 |
是否主键 |
是否为空 |
说明 |
|
oid |
int |
|
是 |
否 |
订单编号 |
|
oname |
varchar |
20 |
否 |
否 |
提交人 |
|
otime |
varchar |
20 |
否 |
否 |
提交时间 |
|
odeal |
varchar |
20 |
否 |
否 |
处理人 |
|
ostatus |
varchar |
20 |
否 |
否 |
订单状态 |
|
oreason |
varchar |
100 |
否 |
否 |
备注信息 |
Sql语句如下:
创建表(创建新表用关键字create table命令;default 指默认)
create table olist(
oid int not null,
oname varchar(20) not null,
otime varchar(20) not null,
odeal varchar(20) default '无',
ostatus varchar(20) default '预订中',
oreason varchar(20) default '无',
primary key (oid)
);
插入测试数据(数据插入用关键字insert into表名 values(数据))
insert into olist values('1','黄晶晶','2014-06-05','小杰','已入住','无');
insert into olist values('2','陈辉','2014-06-07','小杰','已入住','无');
insert into olist values('3','鲁国诚','2014-07-16','小杰','预订中','无');
六、订单明细表 oinfo
该表共有六个字段,分别为预订编号、所属订单号、所订资源名称、开始时间、结束时间及处理状态
|
字段名 |
字段类型 |
字段大小 |
是否主键 |
是否为空 |
说明 |
|
orid |
int |
|
是 |
否 |
预订编号 |
|
oid |
int |
|
否 |
否 |
所属订单号 |
|
rgid |
varchar |
10 |
否 |
否 |
所订资源名称 |
|
ftime |
varchar |
20 |
否 |
否 |
开始时间 |
|
etime |
varchar |
20 |
否 |
否 |
结束时间 |
|
ostatus |
varchar |
10 |
否 |
否 |
处理状态 |
Sql语句如下:
创建表(创建新表用关键字create table命令;default 指默认)
create table oinfo(
orid int not null,
oid int not null,
rgid varchar(10) not null,
ftime varchar(20) not null,
etime varchar(20) not null,
ostatus varchar(10) not null default '预订中',
primary key (orid),
key oid (oid),
constraint oid_fk_2 foreign key (oid) references olist(oid),
key rgid (rgid),
constraint rgid_fk_2 foreign key (rgid) references resource(rgid)
);
插入测试数据(数据插入用关键字insert into表名 values(数据))
insert into oinfo values('1','1','天字号','2014-06-07','2014-06-09','交易完成');
insert into oinfo values('2','2','地字号','2014-06-09','2014-06-15','交易完成');
insert into oinfo values('3','3','黄字号','2014-07-16','2014-07-26','交易进行中');
浙公网安备 33010602011771号