Sql server 最终用户报表设计器的数据库架构
我正在尝试实现一个功能,除了我系统中的所有报告之外,我还允许最终用户创建简单的报告。(不是过于复杂的报告,它涉及多个具有大量逻辑的表之间的切片和切分) 用户将能够: 1) 从允许的表列表中选择一个基表(例如,客户) 2) 选择多个子表(例如,地址表,地址ID作为将客户链接到地址的字段) 3) 从表中选择字段 4) 有基本的分类 这是我目前使用的数据库模式,我很确定它还远远不够完美,所以我想知道还有什么可以改进的地方 允许表 此表将包含用户可以根据其创建自定义报告的表列表Sql server 最终用户报表设计器的数据库架构,sql-server,database-design,report,schema,Sql Server,Database Design,Report,Schema,我正在尝试实现一个功能,除了我系统中的所有报告之外,我还允许最终用户创建简单的报告。(不是过于复杂的报告,它涉及多个具有大量逻辑的表之间的切片和切分) 用户将能够: 1) 从允许的表列表中选择一个基表(例如,客户) 2) 选择多个子表(例如,地址表,地址ID作为将客户链接到地址的字段) 3) 从表中选择字段 4) 有基本的分类 这是我目前使用的数据库模式,我很确定它还远远不够完美,所以我想知道还有什么可以改进的地方 允许表 此表将包含用户可以根据其创建自定义报告的表列表 Id Tabl
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
我知道这还不完整,但这是我到目前为止想到的。是否有人有参考设计的链接,或者有任何关于我如何改进的意见?这需要大量工作,尽管这是一项相对简单的任务。以下是您可能希望包括的其他几个列以及需要注意的其他一些细节
- 将表名称与架构名称一起存储,或将架构名称存储在附加列中,添加用于排序和排序顺序的列
- 创建附加表以存储将在报告中使用的子表(报告id、架构名称、表名称、子表中用于联接表的列、父表中用于联接表的列、联接运算符(如果总是=,则可能不需要)
- 创建将存储列名(报表id、架构名、表名、列名、显示为)的附加表
完成此操作后,可能还会出现其他一些问题,但希望这将使您朝着正确的方向前进。建议使用INFOMRATION_SCHEMA.table和columns视图,这些视图中已经有这些数据,而不是再次存储这些数据。这将返回我数据库中的所有表是,但您可以将您的表与in连接起来formation_Schema.columns用于存储有关列的所有数据。无需重复。