Database design 复杂报表的数据库结构

Database design 复杂报表的数据库结构,database-design,Database Design,我正在尝试为报表设计一个数据库。此表单有10个部分。 每个部分都与部门相关 当我们收到本报告时,每个章节或报告将发送到相应的部门 表单字段可以包含数字、日期、字符串或文本。有些章节还定义了一对多关系 我想了解一些建议,我应该为完整的报告定义一个表,还是为每个部分定义一个表 每种技术的优缺点是什么?对于这种自由格式的文档,最好的选择是像这样的文档数据库 如果你被关系数据库卡住,考虑更灵活的模式: 报告[报告id主键] 部门类型[部门类型id主键,部门id FK] 节字段[节字段id PK,节类型

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

当我们收到本报告时,每个章节或报告将发送到相应的部门

表单字段可以包含数字、日期、字符串或文本。有些章节还定义了一对多关系

我想了解一些建议,我应该为完整的
报告定义一个表,还是为每个
部分定义一个表


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

对于这种自由格式的文档,最好的选择是像这样的文档数据库

如果你被关系数据库卡住,考虑更灵活的模式:

  • 报告[报告id主键]
  • 部门类型[部门类型id主键,部门id FK]
  • 节字段[节字段id PK,节类型id FK,字段类型VARCHAR]-定义要为给定节类型填充的字段。字段类型可以是“数字”、“日期”、“字符串”和
  • 报告部分[报告部分id PK、报告id FK、部分类型id INT、字段值VARCHAR]-给定报告中的实际部分包含对部分类型id和字段值VARCHAR的引用(由应用程序转换为所需字段类型)
这可能很难设置,但一旦报告/分区布局发生变化(总是比您预期的要快:)就会得到回报