需求分析的目的
为了进行数据库最优化设计
需求分析中的一些问题
- 实体以及实体之间的关系(一对一,一对多,多对多)
- 实体所包含的属性是什么?
- 那些属性或者属性的组合可以标识出唯一的一个实体
- 实体的一些特性,增长量,时效性,生命周期。
需求分析过程
包含模块
- 用户模块
功能:用于用户注册和登录以及个性化信息
包含属性:用户名,密码,电话,邮箱,身份证号,地址,姓名,昵称
可选唯一标识属性:用户名,身份证,电话
存储特点:随系统上线时间增长,需要永久存储,需要考虑分库分表的问题。 - 商品模块
功能:用于记录网站中所销售的商品的商品信息
包含属性:商品编码,商品名称,商品描述,商品品类,供应商名称,重量,有效期,价格…
可选唯一标识属性:商品名称+供应商名称,商品编码
存储特点:对于下线商品可以归档存储。 - 订单模块
功能:用于用户订购商品的信息
包含属性:订单号,用户姓名,用户电话,收货地址,商品编号,商品名称,数量,价格,订单状态,支付状态,订单类型
可选唯一标识属性:订单号
存储特点:永久存储(分库分表) - 购物车模块
功能:用于保存用户购物时所选商品,
包含属性:用户名,商品编号,商品名称,商品价格,商品描述,商品分类,加入时间,商品数量
可选唯一标识属性:用户名+商品编号+加入时间,购物车编号
存储特点:不用永久存储,(设置归档,清理规则) - 供应商模块
功能:用于保存所售产品的供应商信息
包含属性:供应商编号,供应商名称,联系人,电话,营业执照号,地址,法人
可选唯一标识属性:供应商编号,营业执照号
存储特点:永久存储
模块间关系
- 用户<一–多>订单
- 订单<一–多>商品
- 用户<一–一>购物车
- 购物车<一–多>商品
- 商品<一–一>供货商
- 商品<多–多>用户
项目链接
https://github.com/shifeng1993/mongo-server