Membre émérite
Est-ce que, conceptuellement, le modèle ressemblerait à ça ?
Modérateur
Expert éminent sénior
Nerva,
Avec MySQL Workbench, pour associer les tables BENEFICIAIRE et CONTACT, faites comme au paragraphe 5.1.2 « Non Identifying Relationship » de mon article.
Chers équipiers du vaisseau Loo,
Qui se ressemble, s’assemble... J’allais proposer un MCD équivalent aux vôtres, mais avant d’envoyer mon message, j’ai vu que vous m’aviez devancé, caramba !
Expert éminent sénior
Envoyé par
escartefigue
Voici une ébauche réalisée avec Looping, je n'ai retenu que quelques attributs, l'essentiel est dans l'héritage d'une part et dans l'association entre deux sous-types d'autre part.
J'ai supposé qu'un bénéficiaire ne pouvait avoir qu'un seul tuteur et qu'un tuteur pouvait avoir plusieurs bénéficiaires.
Si un bénéficiaire peut avoir plusieurs tuteurs, alors l'association deviendra une table mais le principe restera le même
Notez les noms donnés aux "pattes" de l'association (très simple avec looping, on clique sur la patte et une zone permet de saisir ce nom
: ce nom du MCD est utilisé pour renommer l'identifiant de la personne tutrice dans la table BE_beneficaire du MLD
C'est Paprick, le papa, qu'il faut remercier, c'est tellement simple que ça en est désarmant
Pièce jointe 584130
EDIT oups, Paprick m'a devancé
@Paprick : du coup une question me vient sur les liens courbes, mais je vais la poser dans le forum Looping pour que tout le monde en bénéficie
Une association 0,1 - 0,n devrait normalement entraîner la création d'une table associative si on chasse le bonhomme NULL !
Membre régulier
@Fsmrel, je reviens sur votre première réponse, concernant les deux tables qui ne devraient en faire plus qu'une car je ne comprends pas ce que vous voulez dire. Les 3 entités, bénéficiaires, salariés et contacts sont 3 sous-types de personnes, que j'ai reliées selon vos conseils dans un autre sujet (client et employé, sous-types de personne physique) :
https://www.developpez.net/forums/d2.../#post11637991
Lorsque j'ai restructuré cette base, j'ai donc suivi la même procédure initiale (comme je le fais dorénavant dans toute base incluant des entités similaires).
@Paprick, les dépendances pour les programmes 32 bits sont satisfaites. Plutôt que de m'arracher les cheveux à essayer de le faire tourner sous WINE, je vais m'y plonger sur un PC Windows.
Quant au modèle, il ressemble effectivement à celui que vous avez présenté.
@Escartefigue, la supposition est bonne :
- 1 bénéficiaire ne peut avoir que 0 ou 1 contact.
- 1 contact (qui n'est créé que si 1 bénéficiaire dépend de lui, comme dirait La Palice) peut avoir 1 ou plusieurs bénéficiaires.
Néanmoins, j'avais peut-être la solution devant mes yeux et je ne l'ai pas vue. En effet, j'ai déjà créé une table associative bénéficiaires/salariés pour les affectations, structurée comme ceci :
La différence est que dans ce cas, un bénéficiaire peut avoir plusieurs employés et qu'un employés peut avoir plusieurs bénéficiaires.
Modérateur
Membre régulier
Modérateur
Le contrat est un type d'entité et devrait donc apparaître dans le modèle
Membre régulier
Envoyé par
escartefigue
Le contrat est un type d'entité et devrait donc apparaître dans le modèle
???
Modérateur
Revenons à l'essentiel, à savoir le modèle conceptuel (MCD), le reste et notamment les tables en découle.
Le MCD doit décrire la réalité du contexte, à savoir tous les objets de gestion : les bénéficiaires, les salariés et bien sûr les contrats
Un contrat est une chose important, c'est porteur d'informations et c'est en interaction avec d'autres objets de gestion (par exemple un contrat est signé par tel client à telle date, clôturé à telle autre date, contenir telle et telle ligne détail...).
Le numéro de contrat ne peut donc pas être un simple attribut apparaissant dans une table, il doit être porté par une entité-type [CONTRAT] du MCD qui deviendra une table CONTRAT dans le MLD.
Membre émérite
Expert éminent sénior
Bonsoir Nerva,
Envoyé par
Nerva
@Fsmrel, je reviens sur votre première réponse, concernant les deux tables qui ne devraient en faire plus qu'une car je ne comprends pas ce que vous voulez dire.
Dans ma 1ere réponse (post #2) j’ai précisé que vous aviez modélisé des bijections. Ce n’est sans doute pas ce que vous vouliez faire, mais c’est pourtant ce qu’exprime votre diagramme.
Dans cette 1re réponse, j’ai aussi précisé qu’il fallait en passer par la mise en oeuvre de la spécialisation des entités-types pour modéliser correctement, donc remplacer la bijection par une injection :
[T_PERSONNE]--||---------o|--[T_BENEFICIAIRE]
Ou encore, graphiquement parlant, selon la notation que vous utilisez (notez la cardinalité 0..1) :
En passant, dans votre diagramme la clé primaire de la table T_PERSONNES est la paire {PER_TY_ID, PER_ID}, donc si T_BENEFICIAIRES était une spécialisation (un sous-type) de T_PERSONNES, la paire d’attributs {PER_TY_ID, PER_ID} devrait aussi être présente en tant que clé primaire (et clé étrangère) de T_BENEFICIAIRES, à la place de {BEN_ID}.
Envoyé par
Nerva
Les 3 entités, bénéficiaires, salariés et contacts sont 3 sous-types de personnes, que j'ai reliées selon vos conseils dans un autre sujet (client et employé, sous-types de personne physique)
J’avais bien compris ce que vous cherchiez à faire, mais dans votre diagramme les cardinalités et les clés primaires et étrangères sont complètement à reprendre.
N.B. La présence de l’attribut PER_TY_ID dans les clés primaires est mal venue du point de vue de la modélisation, mais dans votre diagramme du post #11, vous avez rectifié le tir, ok pour ce point-là.
Modérateur
Bonjour Nerva
Envoyé par
Nerva
@Escartefigue, dans le diagramme que j'ai posté, les tables sont épurées de tout ce qui est superflu. Bien évidemment que la table des contrats est particulièrement complète et précise.
Yes, autant pour moi, dans T_contrat EMP_id et BEN_id sont des FK
Envoyé par
Nerva
@Fsmrel, à vrai dire, je n'aime pas trop cette représentation, préférant de loin celle "à la Access".
Pour ma part, je préfère un MCD (et je crois pouvoir dire que je ne suis pas le seul).
Dans un MCD on ne s'encombre pas des FK, on voit directement les règles de gestion au travers des cardinalités et des CIF.
C'est autrement plus parlant qu'un modèle tabulaire.
Dans votre dernier diagramme, vous ajoutez une table associative entre salarié et bénéficiaire.
Quelle est fonctionnellement la nature de cette association ?
Autant pour un tuteur on voit bien, autant pour le salarié c'est moins clair.
+ Répondre à la discussion
Cette discussion est résolue.
Discussions similaires
-
Réponses: 2
Dernier message: 06/02/2007, 10h17
-
Réponses: 5
Dernier message: 15/12/2006, 18h34
-
Réponses: 7
Dernier message: 27/10/2006, 14h58
-
Réponses: 2
Dernier message: 11/05/2006, 13h05
Partager