bugfix> sql > 投稿

バックエンドから動的にレポートを構成できるように、データベースに動的構造を構築しています。バックエンド構造の設計に助けが必要です。これが私のアイデアです

テーブルReportAccountMap

AccountId
ReportId
IsActive

1つのアカウントは複数のReportIdにマッピングできます。accountidは一意です

テーブルReport_MetaData

StructureId
DataSetName
DataSetSourceId
DataSetSourceServiceAPI

テーブルReport_Structure

ReportId
StructureId

上記の構造にどのような制約を設定するかを探しています。

前もって感謝します。

回答 1 件
  • ReportAccountMapとReport_Structureにidを追加して、主キーが1次元になるようにします。

    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という属性も持っているため、必要です。

あなたの答え