今天我们聊聊我们要开发的项目要实现哪些功能,在后面的章节中我们会基本按照今天罗列的功能和模块进行开发。当然,在开发过程中可能会遇到分析不足的情况,但是,这是正常的,因为没有人从开始就知道所有可能的结果是啥。我相信对于功能的分析是必不可少的,因为软件开发是为了满足某个或者一些功能,换句话说,满足这些功能是我们软件开发的目标。但仅仅从功能层面讲,并不能很好的指导我们来完成真正的代码开发。我们需要把功能模块化,把意识状态的功能分解成具有一定标准的模块信息,这样才能更好的指导我们进行真正的代码编写!所以本节很重要,通过本节,我们才能从功能上知道我们要做个什么东西出来!通过本节,我们才能知道我们具体要完成哪些模块,要按照什么样的步骤进行开发。
我们要实现的是一个前后端分离的商城系统的后台服务!我们的目标结合实际应用是学习相关知识,所以在具体业务上我会有所妥协,比如表结构并不会像真正的商城系统保留大量的信息字段,我这里只保留必要字段来完成我们的目标。当然,如果你有兴趣,可以自己丰富本书提供的案例以供您自己的学习和完善项目,这将更加有助于你的学习和成长!而本书一切都本着 “只用必要,简约为真” 的宗旨来书写,旨在能从理论与实战层面给与开发者一定的指导与启发作用。
首先,我们可以罗列一些我们要完成功能,你可以画些用例图,我这里就进行简单的罗列:
- 管理员登录 -----> 用户管理
- 查看用户列表
- 增加用户
- 查看指定用户详情
- 修改某个用户信息
- 删除某个用户
- 普通登录 -----> 用户管理
- 查看自己的用户详情
- 修改自己用户信息
- 注销自己的用户
- 用户状态管理
- 注册
- 登录
- 退出
- 普通用户 -----> 浏览商品
- 商品列表
- 指定商品详情信息
- 已登录普通用户 -----> 下单
- 已登录店家 -----> 管理店铺信息
- 创建新店铺
- 修改自己的店铺信息
- 注销自己的商铺
- 已登录店家 -----> 管理商品信息
- 增加新的商品
- 修改指定商品信息
- 删除指定商品
- 用户模块
- 用户状态管理模块
- 商铺模块
- 商品模块
- 订单模块
+---------+ +---------+
| User +---->+ shop |
+---------+ +---------+
| |
| v
| +---------+
| + Product |
| +---------+
| |
v v
+---------+ +---------+
|Order +---->+Placement|
+---------+ +---------+
-
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
我们完成了项目的分析,从功能分析到模块拆解,最后规划出数据库表结构及数据关系!有了目标,就要向目标出发了!一定要跟上脚步,认真练习!