DBDesigner et relations...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : DBDesigner et relations...

par jojolapine » 07 mars 2007, 19:19

bonjour,
les relations qui me sont proposée, sont les suivantes:

1:1
1:n
1:n (non identifié)
n:m
1:1 (descendent Obj.)
1:1 (non identifié)

je ne sais pas trop à quoi correspond non identifié et descendent Object...
Pour mon exemple, un comentaire appartient à un utilisateur, mais ce dernier peut avoir plusieurs commentaires.. donc je pense pouvoir dire sans hésiter, que c'est une relation du type 1:n, mais après à choisir entre identifié ou non (je ne sais toujours pas à quoi ça correspond...), je ne sais pas...

Jusqu'a maintenant, les petits trucs que j'ai dévellopé, lorsque j'avais des relations, mysql "ne le savait pas", c'est à dire qu'il n'y avait ce bout là:

Code : Tout sélectionner

INDEX commentaires_FKIndex1(utilisateurs_id)
dans la création de mes tables, et c'est moi qui savait quel champ correspond à quel champ...
Mais là je suis un peu tout embrouillé... :oops:

par Ryle » 07 mars 2007, 19:02

Je ne connais pas l'outil, mais je pense qu'un peu d'uml te permettrait de mieux l'appréhender, surtout pour ce qui concerne les relations.

Je suppose que tu dois retrouver des relations du type "Association", "Agrégation", "Composition", "" etc.

En fait, au délà du Modèle Physique de Données (MPD), les différentes relations permettent également de concevoir une modèlisation objet et les relations entres eux (héritages, etc.). Ceci dit, cela va également jouer sur l'intégrité de ta base (un élément peut il exister sans son parent, ou bien est il détruit en cascade, ou réinitialisé, etc.)

En gros (et si je me mélange pas trop les pinceaux)
- l'association correspond à un lien symétrique entre deux classes (ton commentaire est lié à ton utilisateur tout comme ton utilisateur est lié à ton commentaire),
- l'agrégation est un lien non symétrique et représente une relation de subordination (ensemble par rapport à un élément : un email regroupe un titre, un texte, un ou plusieurs destinataires, etc. qu'un autre email peut avoir en commun)
- la composition est une agrégation forte : si tu supprimes l'ensemble, les éléments sont détruits avec (un livre est composé de pages, si tu détruits le livre, tu ne peux plus utiliser les pages)
...

Je ne sais pas si c'est bien à cela que tu fais allusion, et pis si c'est pas le cas, bah tant pis ;)
Après merise, on apprend aussi l'uml sur phpfrance :)

DBDesigner et relations...

par jojolapine » 07 mars 2007, 18:00

Bonjour à tous,
j'ai découvert récemment DBDesigner, et je m'essaye depuis quelques jours à faire mes shémas de bdd sur cet outil, seulement je ne comprend pas tout concernant les relations, il existe en effet 6 boutons pour créer une relation... et je ne sais pas trop lequel utiliser...
Prenons un exemple simple, la relation entre une table commentaire et une table utilisateurs...
j'ai créé les tables suivantes:
Cliquez içi (l'image est trop grande pour être içi)
et en cliquant sur l'outil génération de code sql de dbdesigner, j'obtient ceci:

Code : Tout sélectionner

CREATE TABLE commentaires ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, utilisateurs_id INTEGER UNSIGNED NOT NULL, contenu VARCHAR(255) NOT NULL, PRIMARY KEY(id, utilisateurs_id), INDEX commentaires_FKIndex1(utilisateurs_id) ); CREATE TABLE utilisateurs ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nom VARCHAR(45) NOT NULL DEFAULT dupond, prenom VARCHAR(45) NOT NULL DEFAULT paul, PRIMARY KEY(id) );
Est-ce que le shéma est bon pour l'utilisation (imaginaire) de notre système de commentaire ? j'ai utilisé une relation 1:1 (identifiée)
Et pouvez m'expliquer à quoi correspond les autres relations ?
merci d'avance pour vos lumières...