我正在数据库中构建动态结构,以便我可以动态地配置来自后端的报告。需要您的帮助来设计后端结构。这是我的想法
表ReportAccountMap
AccountId
ReportId
IsActive
一个帐户可以映射到多个ReportIds,accountid是唯一的
表Report_MetaData
StructureId
DataSetName
DataSetSourceId
DataSetSourceServiceAPI
表Report_Structure
ReportId
StructureId
我试图找到在上述结构中加入的约束。
提前致谢。
答案 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的属性。