第一站 - 轻松上网从此开始!

上网第一站

当前位置: > SEO >

建模知识在实际设计中的应用(下)(2)

时间:2017-11-15 11:57来源:我来投稿获取授权
以下内容来自网络或网友投稿,www.swdyz.com不承担连带责任,如有侵权问题请联系我删除。投稿如果是首发请注明‘第一站首发’。如果你对本站有什么好的要求或建议。那么都非常感谢你能-联系我|版权认领
下面举个关于实体之间的栗子:我之前接过的一个项目,其中有一条这样的逻辑一个经销商下最多3个联系人;这时我们会疑问,为啥会有这种设定, 这样的

  下面举个关于实体之间的栗子:我之前接过的一个项目,其中有一条这样的逻辑“一个经销商下最多3个联系人”;这时我们会疑问,为啥会有这种设定, 这样的规则在后续会产生哪些问题呢:

  当经销商下联系人超过3个时,系统是不支持的;

  系统是由简到繁的过程,一开始设定这样的限制,如果后面想在撤销这种设定的话会涉及很多改动;

  实体之间不够独立且依赖太多,所以这不遵循高内聚低耦合的原则; 其实这就是简单的1:N的关系,只是在某些特定方式下,如导入经销商及其联系人的时候,这时我们可以设定这个联系人最多是3个,但是,在系统的使用中,这种关系反而是一种负担;

  2.3 遵循“复用性”原则,所有设计力求复用最优化

  官方解释:

  可复用性,复用又叫重用,是重复使用的意思。复用的好处可以得到 较高的生产效率以及随之而来的成本降低、较高的软件质量(错误可以更快的被纠正)以及 恰当的使用复用可以改善系统的可维护性。

  模块之间的复用,即实体的复用,当实体之间是N:N的关系时,一定会存在这样的复用关系;如果不存在,那这个设计可能没有达到复用最优化的标准;

  如我们常见的组件与商品的关系,是N:N,在商品新建时会以属性的方式增加组件;

  这样做的好处是:

  组件不需要重复新建,直接在商品新增时引用加入即可;

  可对组件进行管理、控制;

  如果我们换一种设计思维,如新建商品时,一个个编辑填写组件信息,这样做会带来

  如不同商品的组件信息相同时,要重复录入;

  组件是以属性的方式附属在商品上,达不到组件可控可管的需求;

  阶梯性关联关系的设计,即多个实体之间有阶梯性关联关系,建议采用断层式数据结构设计,不建议跨级发生联系,即使需要跨级也要把中间那层关系加上;

  为了便于理解,以下实例奉上。

  背景:项目-经销商是N:N的关系,经销商-联系人是1:N的关系;

  需求1:当项目新增成功后,会根据一定条件匹配经销商,确认此项目可能推送的经销商,或者叫预推送;此时的预推送表结构的设计应该是项目-经销商,而不是项目-联系人或项目-经销商-联系人;这样设计的好处有,

  我们只固定了前半边的关系,后面的关系可以通过经销商来匹配带出,当经销商人员发生变更时也不会有任何影响;如果采用其他方式,在经销商人员变更时会多出很多复杂的数据操作,以保证此功能不受影响;

  经销商-联系人是1:N的关系,插入一条项目-经销商关系就要插入多条项目-联系人或项目-经销商-联系人的关系,从数据的冗余角度考虑,也是项目-经销商的关系比较适合;

  需求2:项目推送,项目预推送匹配成功后,可以对项目进行推送,这是真正的推送,有了这条推送,联系人才能在前端看到对应的项目;而此时的设计应该是如何呢

  答案是,项目-经销商-联系人;为什么会加入“经销商”呢?前面的背景也说到,项目与联系人其实是没有这种关系的,他们产生关系的载体其实就是“经销商”;这样做的好处是

  明确该联系人时通过什么载体(即经销商)来获得这从推送关系的,当联系人与载体的关系发生变更时,有个依据来对关联数据进行相关操作;如联系人从载体A变更到B,那此时,联系人当时通过A获得的项目推送关系就应该删除;

  相反的,如果不加入“经销商”的载体,那联系人可见的项目是只增不减,因为我们没有这个载体的依据去操作数据;

  注:一切实际需求为标准,仅供参考;

  三、日常设计要点

  3.1 保持对需求的严谨态度

  虽然需求多如牛毛,产品累成狗(微笑),但我们也要始终保持一颗严谨、谦逊的态度;做软件的都知道,即使是一个很小的需求,他的改动有时也不一定比一个大的需求少;所以,在需求被提出时,我们要保证我们已经了解到该需求的所有细节,以及涉及到的所有改动点;

  3.2 尽量囊括所有扩展场景

  好的产品,流程极简且不容易发生异常;为什么说不容易呢,因为即使是神,也有考虑不周的地方,所以在设计时,应尽量囊括所有场景。

  (1)外部条件导致的异常如断网、服务挂掉等,应给出合适的提示信息;

  (2)另外还有一种,即在常规流程外的分支流程,这个是特别需要我们注意且控制的。

  重复提交:提交按钮没有控制可用状态&&页面流程较慢的情况下会出现多次重复提交的现象,一般前端+后台,双重控制,杜绝重读提交;

  流程异常,无法继续走下去:充分考虑扩展场景,避免出现操作异常,即使异常,也应给出相关提示,指导用户继续走下去。

  3.3 模块关联性,版本规划

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发布者资料
第一站编辑 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2012-05-22 19:05 最后登录:2014-08-08 03:08
栏目列表
推荐内容
分享按鈕