J'examine un modèle de base de données. J'ai besoin d'aide avec une partie du modèle. À ce stade, je suis juste concerné par le modèle logique, pas par la mise en œuvre. Je veux adopter une meilleure pratique.Schéma de données pour les entités complexes - quelle approche est plus simple
Résumé du problème
La base de données est utilisée par une application qui gère les affaires juridiques pour un cabinet d'avocats.
Chaque cas a plusieurs parties. (Par parti, je veux dire une certaine unité juridique dans le monde réel qui a un intérêt dans l'affaire.)
Il existe environ 40 types de parties différentes.
2 de ces types peuvent être une seule personne, une seule organisation ou plusieurs personnes et/ou organisations réunies dans n'importe quelle combinaison.
Les 38 autres types peuvent être une seule personne ou une seule organisation. Chaque cas a toujours 2 parties des types complexes (c'est-à-dire potentiellement une combinaison de personnes et d'organisations).
Habituellement, il y a 5 à 10 parties au total par cas.
options
Chaque partie est modélisé comme potentiellement un combintation d'un certain nombre de personnes et d'organisations. Les tables se présenteront comme suit:
- Case
<
- CasePartyAssignment ->
Parti
Lorsque toutes les parties sont potentiellement une combinaison des personnes et des organisations: - Parti
<-
PartyPersonAssignment->
Personne - Parti
<-
PartyOrgAssignment->
Organisation
- Case
Alternativement, je modélise ceci avec 3 types différents de tables CasePartyAssignment.
Le premier est le même que 1 ci-dessus, qui couvre le scénario complexe:
Case
<-
CaseComplexPartyAssignment->
ComplexPartyEn outre ajouter des tableaux spécifiques pour les scénarios simples:
Affaire
<-
CasePersonAssignment->
Personne- cas
<-
CaseOrgAssignment->
Organisation
La façon dont je le vois, les deux options ont des avantages et des inconvénients. Par exemple, dans l'option 1, je crée un moyen unique de stocker les données, ce qui en soi est simple en raison de la cohérence. Mais cela signifie que je modélise également une partie que je sais être une personne simple utilisant le PartyPersonAssignment conçu pour modéliser la partie complexe.
Quelqu'un a-t-il des commentaires ou des opinions sur ces options?
Merci de votre participation. Je vais aller de l'avant avec l'option 1. – emeargnc