赞
踩
组员:
222241807435郑豪,222241807434张一凡,222241807430许俊伟,222241807429徐统华
随着互联网和移动设备的普及,外卖行业迅速发展,人们越来越依赖通过手机应用或网站订购外卖食品。为了满足用户日益增长的需求,提高餐厅和配送服务的效率,开发一个功能全面、操作简便的外卖管理系统显得尤为重要。该系统旨在为用户提供便捷的订餐体验,同时帮助餐厅和配送员提高工作效率,降低运营成本。
注册与登录:用户能够注册账号,并使用用户名和密码登录系统。
用户信息管理:用户可以查看和修改个人信息,包括联系方式、地址等。
浏览与搜索餐厅和菜品:用户可以浏览餐厅和菜品信息。
下单与支付:用户可以选择菜品下单,使用优惠卷,并通过多种支付方式完成支付。
订单查询与跟踪:用户可以查看历史订单和当前订单的状态。
分析之后可以设计出能够满足用户需求的各种实体以及他们之间的关系,为下一节的 逻辑结构设计打下基础。这些实体包括各种信息,通过相互之间的作用形成数据的流动。 本系统数据库的各实体信息如下所示:
用户:用户名,用户id,用户地址,用户密码,用户电话
商家:店铺地址,店铺名,店铺id
配送员:配送员id,配送员电话,配送员名称,配送员状态,车辆信息
菜品:菜品价格,菜品名,菜品介绍,菜品id
订单:订单号,下单时间,订单总价,状态
优惠卷:优惠卷id,优惠卷名,折扣金额,到期时间
用户(用户id,用户名,用户地址,用户密码,用户电话)
主键:用户id
订单(订单号,下单时间,订单总价,状态,店铺id,用户id,配送员id,实际支付金额,支付方式)
主键:订单号
外键:店铺id,用户id,配送员id
配送员(配送员id,配送员密码,配送员名称,配送员电话,配送员状态,用户id)
主键:配送员id
外键:用户id
商家(店铺id,商家密码,店铺地址,店铺名)
主键:店铺id
菜品(菜品id,菜品价格,菜品名,菜品介绍,商家id,订单号)
主键:菜品id
外键:商家id,订单号
订单-菜品(订单号,菜品id,数量)
主键:订单号,菜品id
优惠券(优惠券id,优惠券名,折扣金额,到期时间)
主键:优惠卷id
拥有(用户id,优惠券id,数量)
主键:
用户id,优惠券id
配送(订单号,到达时间)
主键:订单号
取餐(订单号,取餐时间)
主键:订单号
优化到 BCNF
用户 (用户id, 用户名, 用户地址, 用户密码, 用户电话)
订单 (订单号, 下单时间, 订单总价, 状态, 用户id, 店铺id, 配送员id, 实际支付金额, 支付方式,到达时间,取餐时间)
配送员(配送员id,配送员密码,配送员名称,配送员电话,配送员状态,车辆信息)
商家(店铺id,商家密码,店铺地址,店铺名)
菜品(菜品id,菜品价格,菜品名,菜品介绍,商家id)
订单-菜品(订单号,菜品id,数量)
优惠券(优惠券id,优惠券名,折扣金额,到期时间)
拥有(用户id,优惠卷id,数量)
用户表:
属性 | 类型 | 长度 | 是否空 | 备注 |
User ID | CHAR | 36 | NOT NULL | 用户id |
Username | CHAR | 20 | NOT NULL | 用户名 |
User Address | CHAR | 100 | NULL | 用户地址 |
User Password | CHAR | 20 | NOT NULL | 用户密码 |
User Phone | CHAR | 20 | NULL | 用户电话 |
订单表:
属性 | 类型 | 长度 | 是否空 | 备注 |
OrderID | CHAR | 36 | NOT NULL | 订单号 |
OrderTime | DATE | NULL | 下单时间 | |
Order Total Price | INT | NULL | 订单总结 | |
Status | CHAR | 20 | NULL | 状态 |
ShopID | CHAR | 36 | NULL | 店铺id |
UserID | CHAR | 36 | NULL | 用户id |
Delivery PersonID | CHAR | 36 | NULL | 配送员id |
actualPayment | CHAR | 20 | NULL | 实际支付金额 |
paymentMethod | CHAR | 20 | NULL | 支付方式 |
arrival_time | DATE | NULL | 到达时间 | |
pickup_time | DATE | NULL | 取餐时间 |
配送员:
属性 | 类型 | 长度 | 是否空 | 备注 |
Delivery PersonID | CHAR | 36 | NOT NULL | 配送员id |
Delivery Person Name | CHAR | 20 | NULL | 配送员名称 |
Delivery Person PassWord | CHAR | 20 | NOT NULL | 配送员密码 |
Delivery Person Phone | CHAR | 20 | NULL | 配送员电话 |
Delivery Person Status | CHAR | 20 | NULL | 配送员状态 |
Vehicle Information | CHAR | 20 | NULL | 车辆信息 |
商家:
属性 | 类型 | 长度 | 是否空 | 备注 |
Shop ID | CHAR | 36 | NOT NULL | 店铺id |
Shop PassWord | CHAR | 20 | NOT NULL | 商家密码 |
Shop Address | CHAR | 20 | NULL | 店铺地址 |
Shop Name | CHAR | 20 | NULL | 店铺名 |
菜品:
属性 | 类型 | 长度 | 是否空 | 备注 |
Dish ID | CHAR | 36 | NOT NULL | 菜品id |
Dish Price | CHAR | 20 | NULL | 菜品价格 |
Dish Name | CHAR | 20 | NULL | 菜品名 |
Dish Description | CHAR | 20 | NULL | 菜品介绍 |
Shop ID | CHAR | 36 | NULL | 商家id |
IsDeleted | BIT DEFAULT | 是否删除 |
· 订单-菜品:
属性 | 类型 | 长度 | 是否空 | 备注 |
Order Number | CHAR | 36 | NOT NULL | 订单号 |
Dish ID | CHAR | 36 | NOT NULL | 菜品id |
Quantity | CHAR | 20 | NULL | 数量 |
优惠券:
属性 | 类型 | 长度 | 是否空 | 备注 |
Coupon ID | CHAR | 36 | NOT NULL | 优惠券id |
Coupon Name | CHAR | 20 | NULL | 优惠券名 |
Discount Amount | INT | NULL | 折扣金额 | |
Expiration Date | DATE | NULL | 到期时间 | |
ShopID | CHAR | 36 | NOT NULL | 店铺id |
Quantity | INT | NULL | 优惠券数量 |
拥有:
属性 | 类型 | 长度 | 是否空 | 备注 |
User ID | CHAR | 36 | NOT NULL | 用户id |
Coupon ID | CHAR | 36 | NOT NULL | 优惠券id |
Quantity | INT | NULL | 数量 |
1. 用户管理模块
- 用户注册
- 用户填写用户名、密码、地址、电话等信息进行注册。
- 用户登录
- 用户输入用户名和密码进行身份验证,成功后登录系统。
- 用户信息管理
- 用户可以查看和修改自己的个人信息,如用户名、地址、电话等。
- 用户优惠券管理
- 用户可以查看自己拥有的优惠券。
2. 订单管理模块
- 创建订单
- 用户选择商品并下单,生成新订单。
- 查看订单
- 用户可以查看自己的订单列表及详细信息。
- 订单支付
- 用户选择支付方式完成订单支付,并记录实际支付金额。
- 订单状态更新
- 订单状态由系统自动或手动更新,包括“已下单”、“配送中”、“已完成”等。
- 订单历史查询
- 用户可以查询历史订单记录。
3. 配送管理模块
- 配送员注册
- 配送员填写姓名、电话等信息进行注册。
- 配送员登录
- 配送员输入姓名和密码进行身份验证,成功后登录系统。
- 配送员信息管理
- 配送员可以查看和修改自己的个人信息,如姓名、电话、状态等。
- 查看待接订单
- 配送员可以查看所有待接单的订单列表。
- 主动接单
- 配送员选择接单,系统更新订单的配送员信息和状态为“已接单”。
- 配送状态更新
- 配送员更新配送状态,包括“配送中”、“已送达”等。
4. 商家管理模块
- 商家注册
- 商家填写店铺名称、地址等信息进行注册。
- 商家登录
- 商家输入店铺名称和密码进行身份验证,成功后登录系统。
- 商家信息管理
- 商家可以查看和修改自己的店铺信息,如手机号、地址等。
- 菜品管理
- 商家可以添加、修改和删除菜品信息,包括菜品名称、价格等。
- 优惠券管理
-商家可以发放优惠券,设置优惠券面额,发放数量
1. 用户注册与登录流程
- 用户注册 -> 系统验证 -> 注册成功 -> 用户登录 -> 系统验证 -> 登录成功
2. 商家注册与登录流程
- 商家注册 -> 系统验证 -> 注册成功 -> 商家登录 -> 系统验证 -> 登录成功
3. 配送员注册与登录流程
- 配送员注册 -> 系统验证 -> 注册成功 -> 配送员登录 -> 系统验证 -> 登录成功
4. 订单创建与支付流程
- 用户选择商品 -> 创建订单 -> 用户支付 -> 系统生成订单 -> 支付成功
5. 配送管理流程
- 订单生成 -> 配送员查看待接订单 -> 配送员选择接单 -> 配送中 -> 订单送达 -> 系统更新订单状态
6. 优惠券管理流程
- 商家创建优惠券 -> 分发优惠券 -> 用户使用优惠券 -> 系统计算折扣 -> 订单支付
1. 用户管理数据流
- 用户输入信息 -> 用户管理模块 -> 数据库 (用户表) -> 用户信息存储/更新
2. 订单管理数据流
- 用户选择商品 -> 订单管理模块 -> 数据库 (订单表) -> 订单信息存储/更新
- 用户支付 -> 订单管理模块 -> 数据库 (订单表) -> 支付信息存储/更新
3. 配送管理数据流
- 配送员输入信息 -> 配送管理模块 -> 数据库 (配送员表) -> 配送员信息存储/更新
- 订单信息 -> 配送管理模块 -> 数据库 (订单表) -> 配送状态更新
- 配送员查看待接订单 -> 配送管理模块 -> 数据库 (订单表) -> 接单状态更新
4. 商家管理数据流
- 商家输入信息 -> 商家管理模块 -> 数据库 (商家表) -> 商家信息存储/更新
- 菜品信息 -> 商家管理模块 -> 数据库 (菜品表) -> 菜品信息存储/更新
5. 优惠券管理数据流
- 商家创建优惠券 -> 优惠券管理模块 -> 数据库 (优惠券表) -> 优惠券信息存储
- 用户使用优惠券 -> 优惠券管理模块 -> 数据库 (优惠券表, 拥有表) -> 优惠券使用信息存储/更新
-- 创建数据库 CREATE DATABASE shu;
-- 创建表
CREATE TABLE Users (
UserID CHAR(36) NOT NULL,
Username CHAR(20) NOT NULL,
UserAddress CHAR(100) NULL,
UserPassword CHAR(20) NOT NULL,
UserPhone CHAR(20) NULL,
PRIMARY KEY (UserID)
);
CREATE TABLE Merchants (
ShopID CHAR(36) NOT NULL,
ShopPassword CHAR(20) NOT NULL,
ShopAddress CHAR(20) NULL,
ShopName CHAR(20) NULL,
PRIMARY KEY (ShopID)
);
CREATE TABLE DeliveryPersons (
DeliveryPersonID CHAR(36) NOT NULL,
DeliveryPersonName CHAR(20) NULL,
DeliveryPersonPassword CHAR(20) NOT NULL,
DeliveryPersonPhone CHAR(20) NULL,
DeliveryPersonStatus CHAR(20) NULL,
VehicleInformation CHAR(20) NULL,
PRIMARY KEY (DeliveryPersonID)
);
CREATE TABLE Orders (
OrderID CHAR(36) NOT NULL,
OrderTime DATE NULL,
OrderTotalPrice INT NULL,
Status CHAR(20) NULL,
ShopID CHAR(36) NULL,
UserID CHAR(36) NULL,
DeliveryPersonID CHAR(36) NULL,
ActualPayment CHAR(20) NULL,
PaymentMethod CHAR(20) NULL,
ArrivalTime DATE NULL,
PickupTime DATE NULL,
PRIMARY KEY (OrderID),
FOREIGN KEY (ShopID) REFERENCES Merchants(ShopID),
FOREIGN KEY (UserID) REFERENCES Users(UserID),
FOREIGN KEY (DeliveryPersonID) REFERENCES DeliveryPersons(DeliveryPersonID)
);
CREATE TABLE Dishes (
DishID CHAR(36) NOT NULL,
DishPrice CHAR(20) NULL,
DishName CHAR(20) NULL,
DishDescription CHAR(20) NULL,
ShopID CHAR(36) NULL,
IsDeleted BIT DEFAULT 0,
PRIMARY KEY (DishID),
FOREIGN KEY (ShopID) REFERENCES Merchants(ShopID)
);
CREATE TABLE OrdersDishes (
OrderNumber CHAR(36) NOT NULL,
DishID CHAR(36) NOT NULL,
Quantity CHAR(20) NULL,
PRIMARY KEY (OrderNumber, DishID),
FOREIGN KEY (OrderNumber) REFERENCES Orders(OrderID),
FOREIGN KEY (DishID) REFERENCES Dishes(DishID)
);
CREATE TABLE Coupons (
CouponID CHAR(36) NOT NULL,
CouponName CHAR(20) NULL,
DiscountAmount INT NULL,
ExpirationDate DATE NULL,
ShopID CHAR(36) NOT NULL,
Quantity INT,
PRIMARY KEY (CouponID),
FOREIGN KEY (ShopID) REFERENCES Merchants(ShopID)
);
CREATE TABLE UsersCoupons (
UserID CHAR(36) NOT NULL,
CouponID CHAR(36) NOT NULL,
Quantity INT NULL,
PRIMARY KEY (UserID, CouponID),
FOREIGN KEY (UserID) REFERENCES Users(UserID),
FOREIGN KEY (CouponID) REFERENCES Coupons(CouponID)
);
CREATE TABLE UserCoupons (
UserCouponID CHAR(36) NOT NULL,
UserID CHAR(36) NOT NULL,
CouponID CHAR(36) NOT NULL,
IsUsed BIT DEFAULT 0,
PRIMARY KEY (UserCouponID),
FOREIGN KEY (UserID) REFERENCES Users(UserID),
FOREIGN KEY (CouponID) REFERENCES Coupons(CouponID)
);
-- 索引定义
-- Users 表
CREATE INDEX idx_users_userid ON Users(UserID);
CREATE INDEX idx_users_username ON Users(Username);
-- Merchants 表
CREATE INDEX idx_merchants_shopid ON Merchants(ShopID);
CREATE INDEX idx_merchants_shopname ON Merchants(ShopName);
-- DeliveryPersons 表
CREATE INDEX idx_deliverypersons_deliverypersonid ON DeliveryPersons(DeliveryPersonID);
-- Orders 表
CREATE INDEX idx_orders_orderid ON Orders(OrderID);
CREATE INDEX idx_orders_userid ON Orders(UserID);
CREATE INDEX idx_orders_shopid ON Orders(ShopID);
CREATE INDEX idx_orders_deliverypersonid ON Orders(DeliveryPersonID);
-- Dishes 表
CREATE INDEX idx_dishes_dishid ON Dishes(DishID);
CREATE INDEX idx_dishes_shopid ON Dishes(ShopID);
-- OrdersDishes 表
CREATE INDEX idx_ordersdishes_ordernumber ON OrdersDishes(OrderNumber);
CREATE INDEX idx_ordersdishes_dishid ON OrdersDishes(DishID);
-- Coupons 表
CREATE INDEX idx_coupons_couponid ON Coupons(CouponID);
CREATE INDEX idx_coupons_shopid ON Coupons(ShopID);
-- UserCoupons 表
CREATE INDEX idx_usercoupons_usercouponid ON UserCoupons(UserCouponID);
CREATE INDEX idx_usercoupons_userid ON UserCoupons(UserID);
CREATE INDEX idx_usercoupons_couponid ON UserCoupons(CouponID);
主要功能如下图所示。
注册测试
用户界面测试
选择商家
用户的点餐界面
查看订单
查看地址
查看电话号码
用户获取优惠卷
用户查看优惠卷
商家界面
查看菜品
商家订单管理
添加优惠券功能
商家查看剩余优惠券
外卖员界面
查看待接取订单
查看已接取订单
查看已完成订单
管理功能
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。