3

Espérons que quelqu'un peut être en mesure de conseiller rapidement la meilleure façon pour moi de modéliser mon ERD (j'utilise IDEF1X & ERWin not Chen Notation) même si cela n'a pas vraiment d'importance.Conception de base de données - ERD. Modélisation Question

Fondamentalement, j'ai trois entités

  1. Organisation
  2. Personne
  3. Fiduciaire

règles commerciales stipulent qu'un fiduciaire peut être une personne ou une organisation.

Ma question est la suivante: Serait-il correct d'avoir deux relations de clé étrangère principales avec Trustee? Un de l'organisation> Trustee et le second de la personne> Trustee. Où l'un des champs FK de Trustee sera toujours NULL selon que le Trustee est une personne ou une organisation.

Ou serait-il préférable d'avoir une sorte de table associative entre la personne et l'organisation (person_organisation) et créer une relation PK, FK à partir de person_Organisation> Trustee.

La deuxième option semble préférable car il peut y avoir d'autres entités qui doivent également être liées à la fois à l'organisation et à la personne.

J'espère que cela a du sens.

Un grand merci à l'avance

Répondre

2

trustee_model

EDIT

Eh bien, cela devrait fonctionner aussi:

trustee_model_2

+0

Salut Damir, c'est génial. Je pensais à la méthode du sous-type supertype, mais j'ai aussi quelques autres entités qui peuvent être soit une organisation ou une personne qui ne sont pas suffisamment liées pour se regrouper en un super type générique, par exemple Trustee, partie prenante et actionnaire. – Pixelated

+0

Semble à mes yeux comme les entités comme les parties prenantes et les actionnaires sont vraiment des rôles que soit une personne ou une organisation peut remplir, comme dans l'exemple de Justin K. –

+0

Damir, merci beaucoup pour l'ERD ça semble toujours si évident une fois que quelqu'un l'a fait pour vous. Très apprécié!:) Je vais probablement aller avec cette solution et voir comment les choses se déroulent (pourrait même nommer un attribut après vous si tout va bien! – Pixelated

1

Il me semble que fiduciaire est un exemple d'un rôle d'une personne peut jouer dans une organisation. Donc, vraiment, nous parlons d'une association à trois voies Person_Organization_Role où tous les trois sont la clé primaire. Maintenant, cela pourrait être décomposé en Person_Organization> PO_Role, mais je préfère ne pas aller aussi loin.

+0

Bonjour Justin. Beacoup de remerciements pour la reponse. Votre solution fonctionnerait-elle encore si une personne n'était associée à aucune organisation? – Pixelated

+0

La table réelle serait (person_id, org_id, role_id), donc vous auriez toujours une table Person, et cela pourrait avoir des lignes non référencées dans l'association. –

+0

Bravo pour le conseil. Je suis évidemment encore en train d'apprendre si des solutions telles que la vôtre sont très appréciées. – Pixelated

Questions connexes