需求分析与数据库设计

2020-05-29  本文已影响0人  西城丶

需求

在一些场景中,我们需要用到pdf文件作为表单模板,移动端可以获取到这个pdf文件的表单,在移动端填写完表单后,填充表单数据并生成新的pdf文件作为附件可做预览。

需求分析

理解完上面的需求,我们大致有几个工作要做

  1. 管理pdf模板,但是同一个pdf可以有多个版本,版本之间可切换
  2. 存储pdf模板的表单字段可供查询
  3. 存储提交上来的表单数据到每个版本的数据表
  4. 填充pdf模板数据并生成附件文件

数据库设计

在设计数据库之前,我们先来考虑几个问题

  1. pdf可能会有多页,该如何处理

    有些pdf模板是不止一页的,而且某些页数也是根据表单字段填写的长度来进行续页,比如一个字段有2000字,而我第二页都是这个字段,但是放不下2000个字,那么就要采用续页的形式继续填写,这时候总页数就会变。所以如果是多页的情况,我们需要对这个模板进行拆分,所以我们需要把每一页当成一个pdf模板的一个子表数据,并且需要有判断这一页是否多页的条件。

  2. 每一页的字段需要有很多属性

    比如说这个字段最大输入长度是多少,因为在模板上我们设置文本域的时候,它是一个框,如果文字超过了框的长度,我们就需要换行显示或者截断这个文本框的内容。所以把每一页的字段当成每一页的子表数据。

我们大致可以设计这几张表

CREATE TABLE `base_template` (
  `id` varchar(50) NOT NULL,
  `name` varchar(200) DEFAULT NULL COMMENT '名称',
  `version` varchar(20) DEFAULT NULL COMMENT '版本号',
  `table_name` varchar(200) DEFAULT NULL COMMENT '表名',
  `is_default` tinyint(1) DEFAULT NULL COMMENT '是否默认版本',
  `create_user` varchar(50) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `update_user` varchar(50) DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模板管理表';

结语

有些字段还未说明是怎么用的,我们后续文章继续讲解,有写的不对的欢迎指正。

下篇

数据库设计好了,下面我们开始定义接口

上一篇 下一篇

猜你喜欢

热点阅读