現在、システムのリファクタリングを行っています。
次の状況があります。
このシステムは、複数のビジネス セクターにまたがる企業に関する情報を提供することを目的としています。各企業は、1 つまたは複数のセクターで活動することができます。企業は特定のパートナー プログラムに参加できます。企業は、1 つまたは複数のパートナー メーカーを持つことができます (たとえば、ガレージは BMW/メルセデスとパートナーシップを持つことができます)。これらの参加はすべて、一定の期間 (有効期間) 存在します。さらに、BMW のようなメーカーは、1 つのビジネス セクターに縛られています。そのため、BMW が企業のビジネス セクターに有効である場合にのみ、企業は BMW のパートナーになることができます。つまり、このシステムは、ガレージのようなビジネス部門の企業を維持するだけでなく、レッカー サービスなども維持するためです。
だから今、私のデザインはいくつかの不変条件を引き起こす可能性があります。
会社 -> 割り当て (ゆっくりと変化しない) -> 事業部門
会社 -> パートナーシップ (日付から - まで) -> 組織 <- 事業部門
会社と組織が同じ事業部門の割り当てを共有する必要がある場合。
したがって、現在、組織の事業部門の割り当てを変更することができます。すると、同じ業種は無効というルールになります。
そのようなものをどのようにモデル化しますか?