相信无论是产品经理还是项目经理,都遇到过项目数据结构的设计相关的事情,说说个人对于数据结构设计的理解。工欲善其事必先其器,先给大家介绍几个我比较熟悉数据结构设计的工具: (1)Axure RP7.0 可以用来做用例及页面原型设计。 页面原型可以直接预览查看。 (2)Visual Paradigm 13.0 可以用来做UML设计,我个人比较喜欢用它来画业务流程图。 也可以用来做类图,用例图。不过导出数据字典的话就麻烦了。 (3)表结构设计器EZDML 使用很方便,方便进行表结构设计,重要的是可以直接导出数据字典。建表的时候中英文直接对照在一起。个人推荐表结构设计用这个工具,后面例子的截图都是使用这个工具做的。 其次,数据结构必须有比较确定的业务实施范围(业务用例)及用户行为(业务活动流程图)。 有了以上结合页面原型设计,我们可以开始数据结构设计了。
如何进行数据结构设计
那数据结构设计要怎么做呢?结合电商购物商城帮助大家进行理解。 拿大家在网上买过东西,形成订单管理流程为例,进行一下简单说明: 消费者通过购买商品,填写订单信息,选择优惠信息,提交订单,付款。商家进行发货,消费者收货,评价,完成订单交易。第一要分析表结构关系
第一要分析表结构关系,消费者和订单的关系,订单和商品的关系,商家和商品的关系,商家和订单的关系,当前购买场景下各自的关系。 1. 业务上有一对一,一对多,多对多3种关系 京东上一个消费者可以购买多个商家的多个商品,一个商品当前只会属于一个订单,可以同时对多个商家的商品合并结算,生成一个主订单,多个子订单。 淘宝上一个消费者可以购买多个商家的多个商品,一个商品当前只会属于一个订单,可以同时对多个商家的商品合并结算,生成多个订单。 从消费者购买的订单来看,京东的订单表结构中存在父子结构或者说订单存在一对多的引用关系。淘宝的订单表结构中不存在自引用关系或者说父子订单关系, 提到自引用关系,可以通过自引用达成树结构显示。例如如菜单,用户层级,行政区域,订单如果建立父子结构也可以树状结构显示。 本文订单表结构逻辑参考淘宝,即消费者一次购买过程中,按商家生成订单,一个订单可以购买多件商品,即订单有子表订单项,一个订单可以有多个订单项。*此流程中没有多对多关系,若两个对象之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个对象。这样,实现一个多对多的关系,变为两个一对多的关系。举个例子,在购买商品的详情页上显示文章,一个文章可以涉及多个商品,一个商品可能和多篇文章有关。这时候我们就需要去消除多对多的关系。
第二是表的设计
2. 对象(表)的主键设计- 流程中设计到的对象(表)主键Id皆用GUID类型。
- 不要用业务关系字段作为表的主键,更不要用组合字段做表的联合主键。这样便于将来表业务变化和表数据迁移,尽量减少依赖关系。
【转载说明】  若上述素材出现侵权,请及时联系我们删除及进行处理:8088013@qq.com