0

我正在尝试实现一个功能,除了我系统中的所有报告之外,我将允许最终用户创建简单的报告。(不是过于复杂的报告,涉及对具有大量逻辑的多个表进行切片和切块)

用户将能够:

1) 从允许的表列表中选择一个基表(例如,客户)

2)选择多个子表(例如,地址表,以AddressId为字段将Customers链接到Address)

3) 从表格中选择字段

4)有基本的排序

这是我当前拥有的数据库架构,我很确定它远非完美,所以我想知道我还能改进什么

AllowableTables 表

此表将包含用户可以创建其自定义报告的表的列表。

Id      Table        
----------------------------------
1       Customers
2       Address
3       Orders
4       Products

报告模板表

Id                     Name                     MainTable
------------------------------------------------------------------
1                      Customer Report #2       Customers
2                      Customer Report #3       Customers

ReportTemplateSettings 表

Id   TemplateId  TableName   FieldName   ColumnHeader   ColumnWidth  Sequence  
-------------------------------------------------------------------------------
1    1           Customer    Id          Customer S/N   100          1         
2    1           Customer    Name        Full Name      100          2         
3    1           Address     Address1    Address 1      100          3         

我知道这并不完整,但这是我迄今为止想出的。有没有人有任何参考设计的链接,或者对我如何改进它有任何意见?

4

1 回答 1

0

这需要大量的工作,即使它是相对简单的任务。以下是您可能想要包括的其他几列以及需要注意的其他一些细节。

  • 将表名称与架构名称一起存储或将架构名称存储在附加列中,添加用于排序和排序顺序的列

  • 创建附加表以存储将在报告中使用的子表(报告 ID、模式名称、表名、用于连接表的子表中的列、用于连接表的父表中的列、连接运算符(如果它总是 =)

  • 创建将存储列名的附加表(报告 ID、模式名称、表名、列名、显示为)

完成此操作后,可能还会出现更多事情,但希望这将使您朝着正确的方向前进。

于 2013-08-12T08:37:13.393 回答