复杂报表表单的数据库结构

时间:2014-01-02 09:40:25

标签: database-design

我正在尝试为报表表单设计数据库。此表单有10个Sections。 每个部分都与Department

相关

在我们收到此报告时,每个部分或报告都会发送到相应的部门。

表单字段可能包含数字,日期,字符串或文本。有些部分也定义了一对多的关系。

如果我为完整的Report定义一个表或为每个Section定义一个表,我想提出一些建议吗?

每种技术的优缺点是什么?

1 个答案:

答案 0 :(得分:0)

使用此类自由格式文档,最佳选择是文档数据库,如MongoDB

如果您遇到关系数据库,请考虑更灵活的架构:

  • 报告 [report_id PK]
  • SECTION_TYPES [section_type_id PK,department_id FK]
  • SECTION_FIELDS [section_field_id PK,section_type_id FK,field_type VARCHAR] - 这定义了要为给定的部分类型填充的字段。 Field_type可以是'NUMBER','DATE','STRING',...
  • REPORT_SECTIONS [report_section_id PK,report_id FK,section_type_id INT,field_value VARCHAR] - 给定报告中的实际部分,包含对section_type_id和field_value的引用作为varchar(由应用程序转换为必需的字段类型) )。

这可能更难设置,但只要报告/部分布局发生变化(这总是比您预期的更快),它就会得到回报:)