16-1-表结构设计(实现)

YangeIT大约 3 分钟

16-1-表结构设计(实现)

任务:线索和商机跟进相关表设计

  1. 先完成粗粒度设计

    • 确定我们的跟进表是否要进行拆分
    • 能否不进行拆分?为什么?
    • 如果要拆分怎么拆分?
  2. 细粒度设计

    • 基于粗粒度设计的表和关联关系,基于原型设计每张表里面的字段

思路提示

对于页面来说,表字段的设计应该至少满足能保存原型上的数据,表字段

  1. 先进行粗粒度设计,建立几张表来实现,每张表的关联关系如何
  2. 进行粗粒度设计的结果进行细粒度设计,每张表具有哪些字段

提示:

  1. ​在原型中线索跟进中有线索的信息,商机跟进里有商机跟进的信息
  2. 那么在跟进表里的是否要存储线索和商机的信息?为什么,如果要记录,怎么记录呢? 例:如果在商机跟进里修改了用户的客户资料并保存了,那么这部分数据是保存在商机表里还是跟进表里,从下一个商机业务员的角度考虑

1.粗粒度设计--使用几张表来实现

1.1使用一张表来实现--方案A

使用一张表记录的理由

其中跟进人,跟进时间,下次跟进时间这样的字段都是重复的,可以记录在一张表里,可以参考分配表里的内容,通过一个关联id+type字段来区分商机还是线索

1.2 使用两张表来实现--方案B

使用两张表来存的理由

我觉得商机就应该是商机跟进,线索就应该是线索跟进,不应该混为一谈

现在你们觉得谁更有道理:如果是,你会更愿意使用哪一种方案?

1.3表设计分析

方案1 不好

为什么不好👎,第一商机跟进和线索跟进存储的东西不一样

1.线索跟进页面

线索跟进主要跟进的是:

2.商机跟进

商机跟进记录的重点是:

这两部分跟进记录的内容是不太一样的,虽然可以放在一起,但是由于记录的内容不一致, 👍

但是这不是拆分成两张表的核心原因

注意,作为一个表结构的设计者一定要从长远的角度去考虑问题,不要只考虑眼前的需求,产品经理的需求可能会天天变,需要提前设计并考虑

未来可能的场景

假如我们把商机跟进和线索跟进存在一张表里,假如未来要修改商机跟进记录的内容,

比如新增一列客户担心,但是在线索阶段不需要添加这样的沟通,那么在一张表里的话所有的线索跟进也要跟着变动,这样系统的拓展性就受到了巨大的限制,如果放在一张表里,它的拓展性就很低,这才是要拆分成两张表的核心