Skip to content

Latest commit

 

History

History
137 lines (98 loc) · 6.43 KB

03 项目分析.md

File metadata and controls

137 lines (98 loc) · 6.43 KB

使用rails6 开发纯后端 API 项目

项目分析

​ 今天我们聊聊我们要开发的项目要实现哪些功能,在后面的章节中我们会基本按照今天罗列的功能和模块进行开发。当然,在开发过程中可能会遇到分析不足的情况,但是,这是正常的,因为没有人从开始就知道所有可能的结果是啥。我相信对于功能的分析是必不可少的,因为软件开发是为了满足某个或者一些功能,换句话说,满足这些功能是我们软件开发的目标。但仅仅从功能层面讲,并不能很好的指导我们来完成真正的代码开发。我们需要把功能模块化,把意识状态的功能分解成具有一定标准的模块信息,这样才能更好的指导我们进行真正的代码编写!所以本节很重要,通过本节,我们才能从功能上知道我们要做个什么东西出来!通过本节,我们才能知道我们具体要完成哪些模块,要按照什么样的步骤进行开发。

​ 我们要实现的是一个前后端分离的商城系统的后台服务!我们的目标结合实际应用是学习相关知识,所以在具体业务上我会有所妥协,比如表结构并不会像真正的商城系统保留大量的信息字段,我这里只保留必要字段来完成我们的目标。当然,如果你有兴趣,可以自己丰富本书提供的案例以供您自己的学习和完善项目,这将更加有助于你的学习和成长!而本书一切都本着 “只用必要,简约为真” 的宗旨来书写,旨在能从理论与实战层面给与开发者一定的指导与启发作用。

1. 功能分析

首先,我们可以罗列一些我们要完成功能,你可以画些用例图,我这里就进行简单的罗列:

  • 管理员登录 -----> 用户管理
    • 查看用户列表
    • 增加用户
    • 查看指定用户详情
    • 修改某个用户信息
    • 删除某个用户
  • 普通登录 -----> 用户管理
    • 查看自己的用户详情
    • 修改自己用户信息
    • 注销自己的用户
  • 用户状态管理
    • 注册
    • 登录
    • 退出
  • 普通用户 -----> 浏览商品
    • 商品列表
    • 指定商品详情信息
  • 已登录普通用户 -----> 下单
  • 已登录店家 -----> 管理店铺信息
    • 创建新店铺
    • 修改自己的店铺信息
    • 注销自己的商铺
  • 已登录店家 -----> 管理商品信息
    • 增加新的商品
    • 修改指定商品信息
    • 删除指定商品

2. 模块拆解

  • 用户模块
  • 用户状态管理模块
  • 商铺模块
  • 商品模块
  • 订单模块

3. 数据库表

3.1 表关系

+---------+ 	+---------+
| User 	  +---->+  shop   |
+---------+ 	+---------+
   |			  |
   | 			  v
   |           	+---------+
   |            + Product |
   |            +---------+
   | 			  |
   v 			  v
+---------+ 	+---------+
|Order 	  +---->+Placement|
+---------+ 	+---------+

3.2 表字段

  • users:用户表

    字段 类型 长度 注释 null 默认值
    id integer 11 主键id,自动增长 0
    email string 100 邮箱 空字符串
    password_digest string 256 密码 空字符串
    role unsigned tiny_int 2 角色:0-管理员 1-普通用户 2-店家 1
  • shops:商铺表

    字段 类型 长度 注释 null 默认值
    id integer 11 主键id,自动增长 0
    user_id integer 11 用户id, 关联用户表 0
    name string 50 店铺名 空字符串
    products_count integer 11 商品数 0
    orders_count integer 11 订单数 0
  • products:商品表

    字段 类型 长度 注释 null 默认值
    id integer 11 主键id,自动增长 0
    name string 50 商品名 空字符串
    shop_id integer 11 店铺id 0
    price integer 11 价格:精确到分 0
    quantity integer 11 库存 0
    status unsigned tiny_int 2 商品状态:0-未上架 1-商家 2-删除 0
    content string 500 商品描述 ---
  • orders:订单表

    字段 类型 长度 注释 null 默认值
    id integer 11 主键id,自动增长 0
    user_id integer 11 用户表id 0
    shop_id integer 11 商铺表id 0
    price_total integer 11 总消费金额 0
    quantity integer 11 总购买商品数 0
  • placements:订单详情表

    字段 类型 长度 注释 null 默认值
    order_id integer 11 订单表id 0
    goods_id integer 11 商品表id 0
    price integer 11 交易价格 0
    quantity integer 11 交易数量 0

4. 总结

我们完成了项目的分析,从功能分析到模块拆解,最后规划出数据库表结构及数据关系!有了目标,就要向目标出发了!一定要跟上脚步,认真练习!