Database design 将纸质/PDF表单转换为web-规范化、分区还是宽表?

Database design 将纸质/PDF表单转换为web-规范化、分区还是宽表?,database-design,normalization,vertical-partitioning,Database Design,Normalization,Vertical Partitioning,我们将把一个相当长的租赁申请表转换成一个web应用程序,通过PHP提交到PostgreSQL数据库中 我遵守格言“正常化直到受伤,然后再去正常化直到成功”(Attr:sqlnemage),但当我跳进去的时候,我想我会挖掘集体思维 以下是纸质表单当前的外观: (不是实际形式,但接近) 许多数据是强制性的,将通过几个视图提交,并可选择保存部分完成的申请,以便在以后完成。提交的申请将被审查以获得批准(最好是在一个类似于pdf的视图中)。今后不太可能对数据进行深入分析 在这种情况下,您将如何构造数据?

我们将把一个相当长的租赁申请表转换成一个web应用程序,通过PHP提交到PostgreSQL数据库中

我遵守格言“正常化直到受伤,然后再去正常化直到成功”(Attr:sqlnemage),但当我跳进去的时候,我想我会挖掘集体思维

以下是纸质表单当前的外观: (不是实际形式,但接近)

许多数据是强制性的,将通过几个视图提交,并可选择保存部分完成的申请,以便在以后完成。提交的申请将被审查以获得批准(最好是在一个类似于pdf的视图中)。今后不太可能对数据进行深入分析

在这种情况下,您将如何构造数据? 是否正常化?
是否垂直分区?

我会选择混合解决方案:

  • “正在处理”的表单是XML,或其他“非结构化”数据是具有工作流状态的消息。除了需要做出决策或稍后查找记录的字段外,不要打断其他字段

  • 已经完全批准、验证的表单,以及您所拥有的——存储在完全关系模型中


  • 我之所以提出这样一个解决方案,是因为你永远不会拥有正确的业务规则(假设有人拥有)来在游戏的每个阶段实现正确的约束——我在工作中已经经历过几次了——所以不要尝试。在所有未知都已知之前,不要持久化关系实现。

    我会选择混合解决方案:

  • “正在处理”的表单是XML,或其他“非结构化”数据是具有工作流状态的消息。除了需要做出决策或稍后查找记录的字段外,不要打断其他字段

  • 已经完全批准、验证的表单,以及您所拥有的——存储在完全关系模型中

  • 我之所以提出这样一个解决方案,是因为你永远不会拥有正确的业务规则(假设有人拥有)来在游戏的每个阶段实现正确的约束——我在工作中已经经历过几次了——所以不要尝试。在所有未知都已知之前,不要持久化关系实现