別の会社によって作成された新しいデータベースに対してETL作業を行う必要があるプロジェクトが実行されています。開発者から提供されたデータベース図を調べていると、4つのテーブルに循環参照があることがわかりました。
ダイアグラムをアップロードできませんが、テーブルの一般的な構造は次のとおりです。
場合
- ID(PK)CaseStatusInfo(FK)
- SignOffPlanning(FK)
- SignOffReportReview(FK)
- SignOffQuarterlyReview(FK)
CaseStatusInfo
- ID(PK)
- CaseId(FK)
SignOffPlanning
- ID(PK)
- CaseId(FK)
SignOffReportReview
- ID(PK)
- CaseId(FK)
SignOffQuarterlyReview
- ID(PK)
- CaseId(FK)
ケーステーブルにリンクされたこれらの情報テーブルがどのように使用されるかは、各情報テーブル内に主キーを格納することにより、ケースの履歴ステータスを格納することです。これは本当に論理的には理にかなっていますが、これらのテーブルをさらに正規化して、これらの正規化されたテーブルに履歴データを保持する方がよいと思います。
私の質問は、テーブルをさらに正規化する代わりに、このタイプのデータベース構造を使用するとどのような問題が発生する可能性があるかということです。