视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据库设计之半结构化存储
2020-11-09 14:43:48 责编:小采
文档


业务场景:用户填一些单据,然后上报,完成审批。单据中有几个字段是需要统计的,业务并不复杂。 看简单的场景,当开发人员拿出PDM设计的时候,我惊呆了,密密麻麻的有接近70张表,每张表都是一百多个字段。开发人员抱怨,花了一周的时间来做数据库设计,实

业务场景:用户填一些单据,然后上报,完成审批。单据中有几个字段是需要统计的,业务并不复杂。

看似简单的场景,当开发人员拿出PDM设计的时候,我惊呆了,密密麻麻的有接近70张表,每张表都是一百多个字段。开发人员抱怨,花了一周的时间来做数据库设计,实在是太麻烦了。

设计方案1,我问能不能把单据进行归类,一类单据设计成一张表,用一个字段区分是那张单据,这样会减少很多表。得到的回复是,没法归类,方案1行不通。

设计方案2,做个Excel模板,审批的时候就在excel上审批,问题是有字段要做统计,行不通。

设计方案3,单据的内容使用JSON格式用blob存起来,如果要做统计的字段,做常用条件查询的字段,从blob中冗余出来专做统计。

总结:选择方案3是大大的减少了开发人员的工作量,但对业务分析人员的要求很高,能识别出来哪些字段做分析、统计,哪些字段做查询。丢失了传统数据库设计的很多优点。是设计很多时候都在做平衡,这种设计无疑减少工作量,但对查询、统计不友好,如果你不在乎工作量,我还是建议做成最传统的设计。

下载本文
显示全文
专题