报告数据库中的结构

时间:2018-05-25 12:58:49

标签: sql sql-server

我正在数据库中构建动态结构,以便我可以动态地配置来自后端的报告。需要您的帮助来设计后端结构。这是我的想法

表ReportAccountMap

AccountId
ReportId
IsActive

一个帐户可以映射到多个ReportIds,accountid是唯一的

表Report_MetaData

StructureId
DataSetName
DataSetSourceId
DataSetSourceServiceAPI

表Report_Structure

ReportId
StructureId

我试图找到在上述结构中加入的约束。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在ReportAccountMap和Report_Structure中添加一个id,这样你的主键就会是一维的。

ReportAccountMap.AccountId需要是Account(id)的外键

(ReportAccountMap.AccountId,ReportAccountMap.ReportId)需要是唯一的

Report_MetaData.StructureId需要是Report(StructureId)的外键

Report_MetaData(DataSetSourceId)需要是DataSetSource(Id)的外键

Report_Structure.ReportId需要是Report(Id)的外键

Report_Structure.StructureId需要是(Structure.Id)

的外键

至少这是我理解你的意图。考虑到最佳方向,为n:m表添加索引不会有什么坏处。

此外,还需要ReportAccountMap,因为它与Account逻辑上不同,它还有一个名为IsActive的属性。