【RN+react+koa2+mongodb实战随笔】1.需求分析

需求分析的目的

为了进行数据库最优化设计

需求分析中的一些问题

  • 实体以及实体之间的关系(一对一,一对多,多对多)
  • 实体所包含的属性是什么?
  • 那些属性或者属性的组合可以标识出唯一的一个实体
  • 实体的一些特性,增长量,时效性,生命周期。

需求分析过程

包含模块

  1. 用户模块
    功能:用于用户注册和登录以及个性化信息
    包含属性:用户名,密码,电话,邮箱,身份证号,地址,姓名,昵称
    可选唯一标识属性:用户名,身份证,电话
    存储特点:随系统上线时间增长,需要永久存储,需要考虑分库分表的问题。
  2. 商品模块
    功能:用于记录网站中所销售的商品的商品信息
    包含属性:商品编码,商品名称,商品描述,商品品类,供应商名称,重量,有效期,价格…
    可选唯一标识属性:商品名称+供应商名称,商品编码
    存储特点:对于下线商品可以归档存储。
  3. 订单模块
    功能:用于用户订购商品的信息
    包含属性:订单号,用户姓名,用户电话,收货地址,商品编号,商品名称,数量,价格,订单状态,支付状态,订单类型
    可选唯一标识属性:订单号
    存储特点:永久存储(分库分表)
  4. 购物车模块
    功能:用于保存用户购物时所选商品,
    包含属性:用户名,商品编号,商品名称,商品价格,商品描述,商品分类,加入时间,商品数量
    可选唯一标识属性:用户名+商品编号+加入时间,购物车编号
    存储特点:不用永久存储,(设置归档,清理规则)
  5. 供应商模块
    功能:用于保存所售产品的供应商信息
    包含属性:供应商编号,供应商名称,联系人,电话,营业执照号,地址,法人
    可选唯一标识属性:供应商编号,营业执照号
    存储特点:永久存储

模块间关系

  • 用户<一–多>订单
  • 订单<一–多>商品
  • 用户<一–一>购物车
  • 购物车<一–多>商品
  • 商品<一–一>供货商
  • 商品<多–多>用户

项目链接

https://github.com/shifeng1993/mongo-server