Data schema for complex objects - which approach is easier

I am viewing a database model. I need help with part of the model. At this stage, I am only interested in the logical model, not the implementation. I want to adopt the best practice.

Problem Summary

  • The database is used by an application that manages legal cases for a law firm.

  • In each case, there are several sides. (By the party, I mean some legal community in the real world that is interested in this matter.)

  • There are about 40 different types of parties.

  • 2 of these types may consist of one person, one organization, or several persons and / or organizations combined in any combination.

  • The other 38 types can be either one person or one organization.

  • In each case, there are always two sides of complex types (i.e., potentially a combination of people and organizations).

  • Usually for each case there are 5-10 parties.

Options

  • Each side is modeled as a potential combination of any number of individuals and organizations. The tables look like this:

    • Case <- CasePartyAssignment - >Party
      If all parties are potentially a combination of individuals and organizations:
    • Party <-PartyPersonAssignment ->Face
    • Party <-PartyOrgAssignment ->Organization
  • Alternatively, I model this using three different types of CasePartyAssignment table types.

    The first is the same as above, which covers a complex scenario:

    • Case <-CaseComplexPartyAssignment ->ComplexParty

      , :

    • <- CasePersonAssignment ->

    • <- CaseOrgAssignment ->

, . , 1 , - . , , , - , PartyPersonAssignment, .

- - / ?

+3
2

, 1 . 1 , "--", 2, , , ComplexParty. , , , .

, , .

+1

- :

  • Person
  • PerOrg: Person/Organization, .. LegalEntity
  • : ,
  • PerOrgPartyAssignment: PerOrg Party, PerOrgs ( )
  • : PlantiffParty DefendentParty

PerOrg (aka "Anyone" / "Legal Entity" / "Party"...) - , . , , , , .

0

Source: https://habr.com/ru/post/1715963/


All Articles