资源描述
校园外卖系统数据库
组长:兰双艳
组员:李嘉琼
徐齐徽
周 莎
柳 梅
张玉华
时间:2014年5月20日
校园外卖系统数据库设计
一 需求分析
随着时间的推移,人类对餐饮的需求越来越大,餐饮业也因此发展的越来越快。各式各样的餐厅如雨后春笋般的发展起来。自2000年以后,科学技术越来越发达,人与人之间的交流也越来越方便快捷,人们则会选择更方便的餐饮方式。由此,外卖行业应运而生,校园外卖则更加受欢迎,相比于出去吃饭,更多学生倾向于叫外卖,我们做的这个数据库就是有关校园外卖系统的。
众所周知的是,校园外卖必然包含提供外卖的餐厅、送外卖人员以及订购外卖的人员。而餐厅主要负责提供餐厅名字、所在具体位置以及该餐厅的联系方式,除此之外,餐厅还需要列出菜单以及各种菜品的价目,好让订购人员有更好的选择。而订购外卖的人员(主要是学生)则需要提供他们自身的联系方式,以及所在的宿舍地址,这样送外卖的人员更方便的就能送到买家的手上。
我们希望通过我们做的这个校园外卖数据库系统,更多人能够了解外卖服务方式。
二、流程图
客户
订餐
餐厅
送餐
三、 各表格作用
1、 餐厅:根据客户要求,完成菜肴;
2、 菜单:供客户选择的材料;
3、 顾客:享受餐厅食物的客人;
4、 订单:反映餐厅与顾客之间的交易情况。
四、 数据定义
表一 :餐厅
RNO
RNAME
ADDR
ESS
PHONE
TIME
INT
CHAR(50)
CHAR
(50)
CHAR
(15)
CHAR
(20)
表二 :餐单
FNO
FNAME
PRICE
INT
CHAR(60)
CHAR(20)
表三 :顾客
GNO
GNAME
ADDRESS
PHONE
INT
CHAR(45)
CHAR(20)
CHAR(30)
表四 :订单
RNO
FNO
GNO
QTY
INT
INT
INT
INT
五、建立E-R图
菜品
菜品号
订餐
菜名
价格
顾客
餐厅
订餐号
电话
姓名
餐厅号
座号
电话
地址
地址
数量
六、表的创建
创建餐厅信息表RESTAURANT
CREATE TABLE RESTAURANT
(RNO INT NOT NULL UNIQUE,
RNAME CHAR(50),
ADDRESS CHAR(50),
PHONE char(15),
SHIJIAN CHAR(20));
创建菜品信息表food
CREATE TABLE FOOD
(FNO INT NOT NULL UNIQUE,
FNAME CHAR(60),
PRICE CHAR(20));
创建订餐者信息表GUEST
CREATE TABLE GUEST
(GNO int,
GNAME CHAR(45)NOT NULL UNIQUE,
ADDRESS CHAR(20),
PHONE CHAR(30));
创建餐厅,菜品及订餐人之间联系的表RFG
CREATE TABLE RFG
(RNO int,
FNO INT,
GNO INT,
QTY INT);
七、插入餐厅信息
insert
INTO RESTAURANT
VALUES(01,'xiaocanmao','xiaozuqiuchang','666789','9:00-21:00');
insert
INTO RESTAURANT
VALUES(02,'xuejiecanting','xiaozuqiuchang','61111','10:00-21:00');
insert
INTO RESTAURANT
VALUES(03,'laoyouji','badongkou','670000','10:00-22:00');
insert
INTO RESTAURANT
VALUES(04,'caigenxiang','yangguangduimian','616616','9:00-22:00');
插入菜品信息
insert
INTO FOOD
VALUES(01,'yuxianrousi','8');
insert
INTO FOOD
VALUES(02,'shousibaocai','7');
insert
INTO FOOD
VALUES(03,'youlinqiezi','8');
insert
INTO FOOD
VALUES(04,'ganguotudou','10');
insert
INTO FOOD
VALUES(05,'zicaitang','6');
插入订餐人信息
insert
INTO GUEST
VALUES(01,'liumei','14-415','674471');
inserT
INTO GUEST
VALUES(02 ,'lanshuangyan', '14-415','673617');
insert
INTO GUEST
VALUES(03,'zhangyuhua','14-418','673619');
insert
INTO GUEST
VALUES(04,'zhousha','14-415','693916');
插入订餐之间的信息
insert
INTO RFG
VALUES(01,03,01,01);
insert
INTO RFG
VALUES(01,04, 02,01);
insert
INTO RFG
VALUES(04,01,03,01);
insert
INTO RFG
VALUES(03,02,04,01);
八、信息查询
查询关于餐厅的所有信息
select *
from RESTAURANT;
查询食物及其价格
SELECT FNAME,PRICE
FROM FOOD;
查询顾客的姓名,订餐地址,电话
SELECT GNAME,ADDRESS,PHONE
FROM GUEST;
查询14-415订餐的所有人
SELECT GNAME
FROM GUEST
WHERE ADDRESS='14-415';
查询价格在8——10块之间的所有食物
SELECT FNAME
FROM FOOD
WHERE PRICE BETWEEN 8 AND 10;
查询订餐数为1的所有信息
SELECT *
FROM RFG
WHERE QTY=01;
查询餐厅地址在小足球场的所有店
SELECT *
FROM RESTAURANT
WHERE ADDRESS='xiaozuqiuchang';
查询在01号店订餐的信息
SELECT *
FROM RFG
WHERE RNO=01;
查询短号为67。。。。的顾客
SELECT *
FROM GUEST
WHERE PHONE LIKE'67____';
查询订餐地址为-415且电话为67。。。。的顾客
SELECT GNAME
FROM GUEST
WHERE ADDRESS='14-415' AND PHONE LIKE'67____';
插入新的订餐人信息
INSERT
INTO GUEST
VALUES(05,'lijiaqiong','14-418','673622');
删除顾客姓名为李嘉琼的所有信息
delete
FROM GUEST
WHERE GNAME='lijiaqiong';
SELECT *
FROM GUEST;
查询有顾客订餐的餐厅信息及订餐数量
SELECT RESTAURANT.RNAME,ADDRESS,PHONE,RFG.QTY
FROM RESTAURANT,RFG
WHERE RESTAURANT.RNO=RFG.RNO;
带IN嵌套查询
SELECT GNAME,ADDRESS,PHONE
FROM GUEST
WHERE ADDRESS IN
(SELECT ADDRESS
FROM GUEST
WHERE GNAME='LANSHUANGYAN');
带UNION操作的集合查询
SELECT *
FROM GUEST
WHERE ADDRESS='14-415'
UNION
SELECT *
FROM GUEST
WHERE PHONE LIKE'673____';
数据更新
UPDATE GUEST
SET PHONE='673520'
WHERE GNAME='LANSHUANGYAN';
建立餐厅和餐厅地址的视图
CREATE VIEW ADDRESS_RESTAURANT
AS
SELECT RNO,RNAME,PHONE
FROM RESTAURANT
WHERE ADDRESS='xiaozuqiuchang';
建立顾客及订餐人地址的视图
CREATE VIEW ADDRESS_GUEST
AS
SELECT GNAME,PHONE
FROM GUEST
WHERE ADDRESS='14-415';
视图查询
SELECT GNAME
FROM ADDRESS_GUEST
WHERE PHONE LIKE'67____';
视图数据更新
UPDATE ADDRESS_RESTAURANT
SET PHONE='666666'
WHERE RNO=01;
删除视图
DROP VIEW ADDRESS_RESTAURANT;
小结
通过这次课题,我们了解了如何建立一个数据库以及一些数据库建立中常出现的问题,本来我们对课本知识并不是特别了解,但是通过多次实验,我们最终完成了这次数据库的大作业,也更加了解课本知识,不管怎么说,我们还是受益匪浅的。
展开阅读全文