当前位置:   article > 正文

数据库课程设计(外卖管理系统)_课程设计外卖信息管理数据库的社会需求

课程设计外卖信息管理数据库的社会需求

组员:

222241807435郑豪,222241807434张一凡,222241807430许俊伟,222241807429徐统华

一. 外卖管理系统的系统规划 

1.1 项目背景

随着互联网和移动设备的普及,外卖行业迅速发展,人们越来越依赖通过手机应用或网站订购外卖食品。为了满足用户日益增长的需求,提高餐厅和配送服务的效率,开发一个功能全面、操作简便的外卖管理系统显得尤为重要。该系统旨在为用户提供便捷的订餐体验,同时帮助餐厅和配送员提高工作效率,降低运营成本。

1.2功能需求

1.2.1 用户功能:

   注册与登录:用户能够注册账号,并使用用户名和密码登录系统。

   用户信息管理:用户可以查看和修改个人信息,包括联系方式、地址等。

   浏览与搜索餐厅和菜品:用户可以浏览餐厅和菜品信息。

   下单与支付:用户可以选择菜品下单,使用优惠卷,并通过多种支付方式完成支付。

   订单查询与跟踪:用户可以查看历史订单和当前订单的状态。

1.2.2 商家功能

  • 菜品管理:商家可以添加、编辑、删除菜品信息,包括名称、价格等。
  • 订单管理商家可以查看、处理订单,并更新订单状态。
  • 商家可以分发优惠券,设置优惠券面额,设置优惠券数量

1.2.3配送员功能

  • 配送员管理:配送员可以注册登录,更新个人信息,如配送员电话等。
  • 配送任务分配:配送员可以接收商家发出的订单。
  • 配送状态更新:配送员可以更新配送状态。

二. 外卖管理系统的概念结构设计

2.1外卖管理系统的实体

分析之后可以设计出能够满足用户需求的各种实体以及他们之间的关系,为下一节的 逻辑结构设计打下基础。这些实体包括各种信息,通过相互之间的作用形成数据的流动。 本系统数据库的各实体信息如下所示:

用户:用户名,用户id,用户地址,用户密码,用户电话

商家:店铺地址,店铺名,店铺id

配送员:配送员id,配送员电话,配送员名称,配送员状态,车辆信息

菜品:菜品价格,菜品名,菜品介绍,菜品id

订单:订单号,下单时间,订单总价,状态

优惠卷:优惠卷id,优惠卷名,折扣金额,到期时间

2.2全局E-R图

三 外卖管理系统的逻辑结构设计

3.1关系模型的设计:

用户(用户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

配送(订单号,到达时间)

主键:订单号

取餐(订单号,取餐时间)

主键:订单号

3.2 关系模型优化

优化到 BCNF

用户 (用户id, 用户名, 用户地址, 用户密码, 用户电话)

订单 (订单号, 下单时间, 订单总价, 状态, 用户id, 店铺id, 配送员id, 实际支付金额, 支付方式,到达时间,取餐时间)

配送员(配送员id,配送员密码,配送员名称,配送员电话,配送员状态,车辆信息)

商家(店铺id,商家密码,店铺地址,店铺名)

菜品(菜品id,菜品价格,菜品名,菜品介绍,商家id)

订单-菜品(订单号,菜品id,数量)

优惠券(优惠券id,优惠券名,折扣金额,到期时间)

拥有(用户id,优惠卷id,数量)

3.3 视图设计

  1. 用户订单视图
  2. 商家订单视图
  3. 配送员订单视图
  4. 订单菜品视图
  5. 优惠券视图

四 外卖管理系统物理结构设计

4.1数据库表结构的设计

        用户表:

属性类型长度是否空备注
User IDCHAR36NOT NULL用户id
UsernameCHAR20NOT NULL用户名
User AddressCHAR100NULL用户地址
User PasswordCHAR20NOT NULL用户密码
User PhoneCHAR20NULL用户电话

        订单表:

属性类型长度是否空备注
OrderIDCHAR36NOT NULL订单号
OrderTimeDATENULL下单时间
Order Total PriceINTNULL订单总结
StatusCHAR20NULL状态
ShopIDCHAR36NULL店铺id
UserIDCHAR36NULL用户id
Delivery PersonIDCHAR36NULL配送员id
actualPaymentCHAR20NULL实际支付金额
paymentMethodCHAR20NULL支付方式
arrival_timeDATENULL到达时间
pickup_timeDATENULL取餐时间

        配送员:

属性类型长度是否空备注
Delivery PersonIDCHAR36NOT NULL配送员id
Delivery Person NameCHAR20NULL配送员名称
Delivery Person PassWordCHAR20NOT NULL配送员密码
Delivery Person PhoneCHAR20NULL配送员电话
Delivery Person StatusCHAR20NULL配送员状态
Vehicle InformationCHAR20NULL车辆信息

        商家:

属性类型长度是否空备注
Shop IDCHAR36NOT NULL店铺id
Shop PassWordCHAR20NOT NULL 商家密码
Shop AddressCHAR20NULL店铺地址
Shop NameCHAR20NULL店铺名

        菜品:

属性类型长度是否空备注
Dish IDCHAR36NOT NULL菜品id
Dish PriceCHAR20NULL菜品价格
Dish NameCHAR20NULL菜品名
Dish DescriptionCHAR20NULL菜品介绍
Shop IDCHAR36NULL商家id

IsDeleted

BIT DEFAULT是否删除

·        订单-菜品:

属性类型长度是否空备注
Order NumberCHAR36NOT NULL订单号
Dish IDCHAR36NOT NULL菜品id
QuantityCHAR20NULL数量

        优惠券:

属性类型长度是否空备注
Coupon IDCHAR36NOT NULL优惠券id
Coupon NameCHAR20NULL优惠券名
Discount AmountINTNULL折扣金额
Expiration DateDATENULL到期时间
ShopIDCHAR36NOT NULL店铺id
QuantityINTNULL优惠券数量

        拥有:

属性类型长度是否空备注
User IDCHAR36NOT NULL用户id
Coupon IDCHAR36NOT NULL优惠券id
QuantityINTNULL数量

  


 

4.2系统功能模块设计

1. 用户管理模块
- 用户注册
  - 用户填写用户名、密码、地址、电话等信息进行注册。
- 用户登录
  - 用户输入用户名和密码进行身份验证,成功后登录系统。
- 用户信息管理
  - 用户可以查看和修改自己的个人信息,如用户名、地址、电话等。
- 用户优惠券管理
  - 用户可以查看自己拥有的优惠券。

 2. 订单管理模块
- 创建订单
  - 用户选择商品并下单,生成新订单。
- 查看订单
  - 用户可以查看自己的订单列表及详细信息。
- 订单支付
  - 用户选择支付方式完成订单支付,并记录实际支付金额。
- 订单状态更新
  - 订单状态由系统自动或手动更新,包括“已下单”、“配送中”、“已完成”等。
- 订单历史查询
  - 用户可以查询历史订单记录。

 3. 配送管理模块
- 配送员注册
  - 配送员填写姓名、电话等信息进行注册。
- 配送员登录
  - 配送员输入姓名和密码进行身份验证,成功后登录系统。
- 配送员信息管理
  - 配送员可以查看和修改自己的个人信息,如姓名、电话、状态等。
- 查看待接订单
  - 配送员可以查看所有待接单的订单列表。
- 主动接单
  - 配送员选择接单,系统更新订单的配送员信息和状态为“已接单”。
- 配送状态更新
  - 配送员更新配送状态,包括“配送中”、“已送达”等。

 4. 商家管理模块
- 商家注册
  - 商家填写店铺名称、地址等信息进行注册。
- 商家登录
  - 商家输入店铺名称和密码进行身份验证,成功后登录系统。
- 商家信息管理
  - 商家可以查看和修改自己的店铺信息,如手机号、地址等。
- 菜品管理
  - 商家可以添加、修改和删除菜品信息,包括菜品名称、价格等。

- 优惠券管理

  -商家可以发放优惠券,设置优惠券面额,发放数量

4.3功能流程图

1. 用户注册与登录流程
   - 用户注册 -> 系统验证 -> 注册成功 -> 用户登录 -> 系统验证 -> 登录成功

2. 商家注册与登录流程
   - 商家注册 -> 系统验证 -> 注册成功 -> 商家登录 -> 系统验证 -> 登录成功

3. 配送员注册与登录流程
   - 配送员注册 -> 系统验证 -> 注册成功 -> 配送员登录 -> 系统验证 -> 登录成功

4. 订单创建与支付流程
   - 用户选择商品 -> 创建订单 -> 用户支付 -> 系统生成订单  -> 支付成功

5. 配送管理流程
   - 订单生成 -> 配送员查看待接订单 -> 配送员选择接单 -> 配送中 -> 订单送达 -> 系统更新订单状态

6. 优惠券管理流程
   - 商家创建优惠券 -> 分发优惠券 -> 用户使用优惠券 -> 系统计算折扣 -> 订单支付

4.4数据流图

1. 用户管理数据流
   - 用户输入信息 -> 用户管理模块 -> 数据库 (用户表) -> 用户信息存储/更新

2. 订单管理数据流
   - 用户选择商品 -> 订单管理模块 -> 数据库 (订单表) -> 订单信息存储/更新
   - 用户支付 -> 订单管理模块 -> 数据库 (订单表) -> 支付信息存储/更新

3. 配送管理数据流
   - 配送员输入信息 -> 配送管理模块 -> 数据库 (配送员表) -> 配送员信息存储/更新
   - 订单信息 -> 配送管理模块 -> 数据库 (订单表) -> 配送状态更新
   - 配送员查看待接订单 -> 配送管理模块 -> 数据库 (订单表) -> 接单状态更新

4. 商家管理数据流
   - 商家输入信息 -> 商家管理模块 -> 数据库 (商家表) -> 商家信息存储/更新
   - 菜品信息 -> 商家管理模块 -> 数据库 (菜品表) -> 菜品信息存储/更新

5. 优惠券管理数据流
   - 商家创建优惠券 -> 优惠券管理模块 -> 数据库 (优惠券表) -> 优惠券信息存储
   - 用户使用优惠券 -> 优惠券管理模块 -> 数据库 (优惠券表, 拥有表) -> 优惠券使用信息存储/更新

五.外卖管理系统管理系统数据库系统实现

5.1 创建数据库

-- 创建数据库 CREATE DATABASE shu;

5.2表的创建

-- 创建表
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)
);

5.3索引

-- 索引定义

-- 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);

六.酒店客房预订管理系统运行和维护

6.1主要功能测试

主要功能如下图所示

注册测试

用户界面测试

选择商家

用户的点餐界面

查看订单

查看地址

查看电话号码

用户获取优惠卷

用户查看优惠卷

商家界面

查看菜品

商家订单管理

添加优惠券功能

商家查看剩余优惠券

外卖员界面

查看待接取订单

查看已接取订单

查看已完成订单

管理功能

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/843154
推荐阅读
相关标签
  

闽ICP备14008679号