mysql数据库课程设计——点餐系统(python连接实现可视化,含源码,含报告)
一、设计题目与内容
通过了解餐饮行业的特点和实际情况,从分析饭店的基本情况入手,结合要实现的功能,对系统的可行性进行分析,为提高其可行性,故做了以下数据分析,用以完成饭店点餐系统
二、系统分析与设计
2.1 数据需求
餐桌数据包括餐桌号、座位数、状态(空/有人)。 餐厅存储有顾客信息,员工信息。菜品信息有菜品编号、名称、类别、价格等 。
具体数据需求如下:
2.1.1下订单阶段需要的数据:
顾客信息:包括顾客编号。
订单信息:包括订单编号、消费时间。
餐桌信息:包括编号、可容人数、使用状态等
员工信息:包括员工工号。
2.1.2点菜阶段需要的数据:
订单信息:订单编号
菜品信息:包括菜品编号、菜品名称、菜品数量等。
2.1.3结账阶段需要的数据:
订单信息:包括订单编号、顾客编号
菜品信息:包括菜品编号、菜品名称、菜品数量等。
员工信息:包括员工工号
折扣信息:包括消费金额、折扣数
2.1.4员工管理需要的数据:
员工档案:包括工号、姓名、性别、工资
2.1.5顾客管理需要的数据:
顾客档案:包括编号、姓名、性别等。
2.1.6消费记录管理需要的数据有:
消费信息:订单编号、消费金额、折扣后金额、结账时间
2.2事务需求
2.2.1数据录入
录入顾客信息、录入餐桌信息、录入员工信息、录入菜品信息
2.2.2数据更新/删除
更新/删除餐桌信息、更新/删除菜谱菜品信息、更新/删除员工信息、更新/删除顾客信息、更新/删除订单菜品信息
2.2.3数据查询
查询可用餐桌信息、查询在售菜品信息、查询订单信息、查询顾客点菜信息 、查询员工信息、查询顾客消费信息
三、数据库概念设计
3.1菜谱(Menus)E-R图

3.2顾客(Tomer)E-R图

3.3餐桌(FoodTable)E-R图

3.4员工(Worke)E-R图

3.5订单(Oder)E-R图

3.6消费记录( Sales_bill)E-R图

3.7折扣规则(Discount_rules)E-R图

3.8全局E-R图

四、数据库逻辑设计
4.1转换规则
一个实体型转换成一个关系模型。实体的属性就是关系的属性,实体的码就是关系的码。
实体型间的联系常有如下不同的情况:
a. 一个1:1联系可以转换为一个独立的关系模式,也可以任意一端对应的关系模式合并。
b. 一个1:n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。
c. 一个m:n联系转换成一个关系模式。
d. 3或3个以上实体间的一个多联系可以转换成一个关系模式。
e. 具有相同码的关系模式可合并。
4.1.1关系模型:(红色为主码)
菜谱(菜品编号,菜品名称,菜品类别,菜品价格)
顾客(顾客编号,姓名,性别,年龄,联系方式)
餐桌(餐桌号,座位数,使用状态)
员工(工号,姓名,性别,年龄,工资)
订单(订单编号,顾客编号,消费时间,餐桌编号,服务员编号)
菜谱_订单(订单编号,菜品编号,菜品名称,菜品数量)
消费记录(订单号,消费金额,折扣后金额,账单时间)
折扣规则(消费金额,折扣)
4.2建立基本表
4.2.1菜谱(Menus)
create table Menus(
M_id varchar(10) primary key,
M_name varchar(20),
M_class varchar(10),
M_price float);

4.2.2顾客(Tomer)
create tale Tomer
(T_id varchar(10) primary key,
T_name varchar(10) not null
T_rsex varchar(4) check (T_sex='男'or T_sex='女') ,
T_phone varchar(20) );

4.2.3餐桌(FoodTable)
create table Foodtable
(Cz_id varchar(10) primary key,
Cz_number int not null,
Cz_zt varchar(6)check(Cz_zt="空" or Cz_zt="有人"));

4.2.4员工(Worke)
create table Worke
(W_id varchar(10) primary key, W_name varchar(10),
W_sex varchar(4) check(W_sex='男' or W_sex='女'),
W_age int,
W_salary float) ;

4.2.5订单(Oder)
create table Menus_Oder
(O_id varchar(10),
M_id varchar(10),
M_name varchar(10),
M_number int not null,
Primary key(M_id ,O_id),
foreign key(M_id) references Menus(M_id ),
foreign key(O_id) references Oder(O_id) ) ;

4.2.6菜谱_订单(Menus_Oder)
create table Menus_Oder
(O_id varchar(10),
M_id varchar(10),
M_name varchar(10),
M_number int not null,
Primary key(M_id ,O_id),
foreign key(M_id) references Menus(M_id ),
foreign key(O_id) references Oder(O_id) ) ;
4.2.7折扣规则(Discount_rules)
create table Discount_rules
(Je float primary key,
Zk float);
4.2.8消费账单(Sales_bill)
create table Sales_bill
(O_id varchar(10) primary key ,
S_price float,
S_priceafter float,
time datetime,
foreign key(O_id ) references Oder(O_id ) );

4.3管理基本表
有时候应用环境和应用需求的改变,我们需要修改已经建立好的基本表的模式结构或者更新已经插入的数据。mysql语句采用alter table<>语句修改基本表的结构,利用drop<>子句删除基本表,利用update更新已经插入的数据。alter table语句以修改基本表的名字,增加新列或者增加新的完整性约束条件,修改原有列的定义,包括修改列名和数据类型等。drop子句用于删除指定的完整性约束条件。UPDATE用于把插入表的数据更新改变。
因为在建立表时将Tomer表中的T_sex错误的录为T_rsex,因此用alter table 表名 change 旧字段名 新字段名 新字段类型。

五、系统实现
访问数据库
5.1数据查询
5.1.1 Foodtable表

5.2.1menus表

5.1.3员工表(worke)

5.1.4消费记录( Sales_bill)

5.1.5顾客(Tomer)

5.1.6订单(Oder)

5.1.7折扣规则(Discount_rules)

5.1.8点菜(menus_oder)

5.2数据更新
将员工表(worker)中的01号员工W_age数据项改为20.
原来的表:

改过之后

想要领取资料的小伙伴们,请关注下方微信公众号领取哦~
然后就等着私信查收吧~
