MySQL数据库餐厅点菜系统设计
1. 系统概述
本系统旨在为餐厅提供一个高效、便捷的点菜系统,通过MySQL数据库管理餐厅的菜单、订单、顾客信息等数据。
2. 数据库设计
2.1 数据库结构
以下为餐厅点菜系统的数据库结构设计:
1. 用户表 (Users)
用户ID (user_id) 主键,自增
用户名 (username) 唯一标识
密码 (password) 加密存储
手机号 (phone) 用于接收订单通知
注册时间 (register_time) 用户注册时间
2. 菜品表 (Dishes)
菜品ID (dish_id) 主键,自增
菜品名称 (dish_name) 菜品名称
价格 (price) 菜品价格
分类 (category) 菜品分类(如:热菜、凉菜、汤品等)
描述 (description) 菜品描述
3. 订单表 (Orders)
订单ID (order_id) 主键,自增
用户ID (user_id) 外键,关联用户表
订单时间 (order_time) 订单生成时间
订单状态 (status) 订单状态(如:待支付、已支付、已配送等)
总价 (total_price) 订单总价
4. 订单详情表 (OrderDetails)
订单详情ID (order_detail_id) 主键,自增
订单ID (order_id) 外键,关联订单表
菜品ID (dish_id) 外键,关联菜品表
数量 (quantity) 菜品数量
单价 (unit_price) 菜品单价
2.2 数据库表关系
Users表与Orders表为一对多关系,一个用户可以创建多个订单。
Dishes表与OrderDetails表为一对多关系,一个菜品可以出现在多个订单中。
Orders表与OrderDetails表为一对多关系,一个订单可以包含多个菜品。
3. 数据库操作示例
3.1 创建数据库和表
CREATE DATABASE RestaurantOrderSystem; USE RestaurantOrderSystem; CREATE TABLE Users ( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, phone VARCHAR(20) NOT NULL, register_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE Dishes ( dish_id INT AUTO_INCREMENT PRIMARY KEY, dish_name VARCHAR(100) NOT NULL, price DECIMAL(10, 2) NOT NULL, category VARCHAR(50), description TEXT ); CREATE TABLE Orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, status VARCHAR(20), total_price DECIMAL(10, 2), FOREIGN KEY (user_id) REFERENCES Users(user_id) ); CREATE TABLE OrderDetails ( order_detail_id INT AUTO_INCREMENT PRIMARY KEY, order_id INT, dish_id INT, quantity INT, unit_price DECIMAL(10, 2), FOREIGN KEY (order_id) REFERENCES Orders(order_id), FOREIGN KEY (dish_id) REFERENCES Dishes(dish_id) );
3.2 插入数据
插入用户 INSERT INTO Users (username, password, phone) VALUES ('john_doe', 'password123', '1234567890'); 插入菜品 INSERT INTO Dishes (dish_name, price, category, description) VALUES ('宫保鸡丁', 38.00, '热菜', '辣味宫保鸡丁'); 插入订单 INSERT INTO Orders (user_id, status, total_price) VALUES (1, '待支付', 100.00); 插入订单详情 INSERT INTO OrderDetails (order_id, dish_id, quantity, unit_price) VALUES (1, 1, 2, 38.00);
4. 总结
是餐厅点菜系统的MySQL数据库设计,通过合理的数据结构和表关系,可以实现对餐厅订单、菜品和用户信息的有效管理。