Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2926 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MERISE] - Représenter la notion de vue dans un MCD

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

[MERISE] - Représenter la notion de vue dans un MCD

n°1306073
Profil sup​primé
Posté le 15-02-2006 à 13:28:02  answer
 

Salut à tous.
 
Tout d'abord, j'epère avoir posté dans la bonne catégorie.
 
Mon problème est le suivant :
 
J'ai une base de dvd theque et j'ai une entité "nationalité" que je souhaite associer à trois autres entités (Film, Realisateur & Acteur).
Voici mon MCD pour que vous vous fassiez une idée:
 
http://www.mezimages.com/image/fredhali2000/ecole/merise/MON%20MCD.JPG
 
Je veux eviter la boucle qui relie les trois entites vers l'entité nationalite, en creant des vues, mais je ne sais pas comment les representer.
Est-ce que comme j'ai fait là ca marche???
 
J'aimerais savoir comment on représente, en MCD, la notion de vues...
 
J'espère m'etre bien fait comprendre, et je vous remercie de votre aide.

mood
Publicité
Posté le 15-02-2006 à 13:28:02  profilanswer
 

n°1306271
skeye
Posté le 15-02-2006 à 14:53:22  profilanswer
 

rien compris.
Si une relation existe entre tes tables, tu les associes, sinon tu les associes pas, point barre.
Une vue ça n'est pas de la modélisation, c'est un outil fourni par ton sgbd.


---------------
Can't buy what I want because it's free -
n°1306281
blastman
just me !
Posté le 15-02-2006 à 14:56:03  profilanswer
 

j'ai pas compris ta question, mais peut tu me dire avec quel logiciel tu as fais ce MCD ?


---------------
http://www.blastmanu.info
n°1306286
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 14:58:35  profilanswer
 

Hummm.... C'est amusant j'ai exactement le même MCD sur papier dans un bouquin sur Merise. Après consultation de la correction ta boucle ne peut pas être supprimée.

n°1306325
Profil sup​primé
Posté le 15-02-2006 à 15:15:41  answer
 

http://www.mezimages.com/image/fredhali2000/ecole/merise/Mon%20MCD%20-%202.jpg
Voici mon MCD après quelques modifs...
Pour blastman : je n'ai pas trouvé de logiciel interessant pour faire des MCD, je l'ai donc fait avec Microsoft Excel...

n°1306327
skeye
Posté le 15-02-2006 à 15:16:34  profilanswer
 

Et les apatrides, alors? [:dawao]


---------------
Can't buy what I want because it's free -
n°1306332
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:18:40  profilanswer
 

T'as dû t'amuser avec excel!
 

skeye a écrit :

Et les apatrides, alors? [:dawao]


il va quand même pas mettre du 0,N?
On créé juste une nationnalité qui s'appelle Apatride....
 
 
Comme dans le cas de proffession où on met souvent : sans emploi.

Message cité 1 fois
Message édité par dwogsi le 15-02-2006 à 15:27:03
n°1306335
Profil sup​primé
Posté le 15-02-2006 à 15:19:43  answer
 

non ca a tet vite avec excel...
j'avais commencé avec paint et puis j'en ai eu marre, et avec excel c'est vachement mieux

n°1306340
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:21:29  profilanswer
 

Paint????????????
Quelle galére, je n'ose même pas imaginer! PwerAMCD j'l'aime bien même si ce n'est pas le cas de tout le monde. Bon sinon je maintiens, ta boucle n'est pas supprimable!

Message cité 1 fois
Message édité par dwogsi le 15-02-2006 à 15:22:28
n°1306342
skeye
Posté le 15-02-2006 à 15:21:48  profilanswer
 

dwogsi a écrit :

il va quand même pas mettre du 0,N?
On créé juste une nationnalité qui s'appelle Apatride....
 
 
Comme dans le cas de proffession où on met souvent : sans emploi.


 
Chuuuuuuut tu me bousilles ma question piège! [:dawao]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 15-02-2006 à 15:21:48  profilanswer
 

n°1306345
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:23:09  profilanswer
 

J'hésitais entre ignard ou plaisantain.
J'me suis trompé et je m'en excuse.  :)


Message édité par dwogsi le 15-02-2006 à 15:24:14
n°1306348
skeye
Posté le 15-02-2006 à 15:26:27  profilanswer
 

Pas grave.[:petrus75]
Et ignare. [:aloy]
 
...et après réflexion je suis en train de me dire que c'est pas forcément si con que ça, le (0,n)...la nationalité ne me parait pas un champs important au point de le rendre obligatoire...[:god]


---------------
Can't buy what I want because it's free -
n°1306351
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:27:32  profilanswer
 

Ouai mais ca plombe la base de donnée pour rien un 0,N. Si c'est pas important tu vire l'entité et c'est tout.


Message édité par dwogsi le 15-02-2006 à 15:28:17
n°1306353
skeye
Posté le 15-02-2006 à 15:29:17  profilanswer
 

euh...pour quelle raison? :??:


---------------
Can't buy what I want because it's free -
n°1306355
maxpower44
Posté le 15-02-2006 à 15:32:30  profilanswer
 

skeye a écrit :

Et les apatrides, alors? [:dawao]


+1
un film, un acteur ou un realisateur peuvent etre de plusieurs nationnalites ou de nationnalite inconnue.
de plus un acteur d'un film peux egalement etre le realisateur dudit film ou d'un autre, donc a ta place je n'aurrait qu'une table personne et une relation film <- Participe (qualite=realisateur, acteur, metteur en scene, producteur ...)-> personne  
 

Citation :

il va quand même pas mettre du 0,1?
On créé juste une nationnalité qui s'appelle Apatride....

 :non: du 0,N. Il vaut mieux y penser au debut que d'etre coincer apres ...

n°1306356
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:32:37  profilanswer
 

skeye a écrit :

euh...pour quelle raison? :??:


0,N => Associations multiples => Nouvelle table
0,1 => Ca ouai je veux bien.
 

skeye a écrit :

euh...pour quelle raison? :??:


 

maxpower44 a écrit :

 :non: du 0,N. Il vaut mieux y penser au debut que d'etre coincer apres ...


 
Comma l'a très justement dit skeye, la nationnalité n'est d'une importance capitale alors si on en a déjà une c'est bon ! Alors je maintiens le 1,1 ou 0,1.

Message cité 3 fois
Message édité par dwogsi le 15-02-2006 à 15:35:58
n°1306359
skeye
Posté le 15-02-2006 à 15:34:55  profilanswer
 

dwogsi a écrit :

0,N => Associations multiples => Nouvelle table


Bien sur que oui il faut une table des nationalités! [:pingouino]
Ca peut être une table pré-remplie, avec un nombre d'enregistrements relativement faible, ce n'est pas de faire une jointure là-dessus qui va te "plomber la base"...[:mlc]


---------------
Can't buy what I want because it's free -
n°1306363
skeye
Posté le 15-02-2006 à 15:37:38  profilanswer
 

dwogsi a écrit :

Comma l'a très justement dit skeye, la nationnalité n'est d'une importance capitale alors si on en a déjà une c'est bon ! Alors je maintiens le 1,1 ou 0,1.


 
Non, un film peut avoir plusieurs nationalités, une personne aussi. Tu délires, là, franchement. Non seulement tu ne permets pas de stocker toutes les infos, mais en plus dans certains cas tu obliges à stocker de l'info qui n'existe pas.[:pingouino]


Message édité par skeye le 15-02-2006 à 15:38:35

---------------
Can't buy what I want because it's free -
n°1306364
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:37:57  profilanswer
 

skeye a écrit :

Bien sur que oui il faut une table des nationalités! [:pingouino]
Ca peut être une table pré-remplie, avec un nombre d'enregistrements relativement faible, ce n'est pas de faire une jointure là-dessus qui va te "plomber la base"...[:mlc]


Oui mais l'association de nationnalité à acteur va nous créer une nouvelle table! Si on a du N des deux coté c'est forcé....
 
Donc ca rajoute une table qui n'est pas forcément indispensable. Bon le mot "plombe" est un peu fort pour ce que je voulais dire.

Message cité 1 fois
Message édité par dwogsi le 15-02-2006 à 15:38:26
n°1306368
skeye
Posté le 15-02-2006 à 15:39:21  profilanswer
 

dwogsi a écrit :

Oui mais l'association de nationnalité à acteur va nous créer une nouvelle table! Si on a du N des deux coté c'est forcé....
 
Donc ca rajoute une table qui n'est pas forcément indispensable. Bon le mot "plombe" est un peu fort pour ce que je voulais dire.


 
Mais oussa une nouvelle table? Il faut UNE table des nationalités, point barre!!!


---------------
Can't buy what I want because it's free -
n°1306375
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:42:25  profilanswer
 

skeye a écrit :

Mais oussa une nouvelle table? Il faut UNE table des nationalités, point barre!!!


[Acteur]0,N---------|ETRE DE|--------0,N[NATIONNALITE]
 
Dis moi simplement comment, dans la pratique, tu va faire la correspondance entre les deux????


Message édité par dwogsi le 15-02-2006 à 15:42:48
n°1306376
skeye
Posté le 15-02-2006 à 15:44:28  profilanswer
 

euh oui, très juste.[:petrus75]
 
Dans la pratique, pour pas alourdir la structure, je collerais probablement plusieurs champs de nationalité dans acteur.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1306378
maxpower44
Posté le 15-02-2006 à 15:45:46  profilanswer
 

dwogsi a écrit :

Comma l'a très justement dit skeye, la nationnalité n'est d'une importance capitale alors si on en a déjà une c'est bon ! Alors je maintiens le 1,1 ou 0,1.


A priori, fredhali2000 est le seul juge pour savoir si c'est indipensable ou non :D
 

skeye a écrit :

Mais oussa une nouvelle table? Il faut UNE table des nationalités, point barre!!!


Bien sur qui va creer une nouvelle table :
personne (id_personne, ...)
nationalite (id_nationnalite, ...)
relation_persone_nationnalite (id_personne, id_nationnalite)

n°1306382
skeye
Posté le 15-02-2006 à 15:46:59  profilanswer
 

maxpower44 a écrit :

Bien sur qui va creer une nouvelle table :
personne (id_personne, ...)
nationalite (id_nationnalite, ...)
relation_persone_nationnalite (id_personne, id_nationnalite)


 
C'est bon, j'avais oublié de réfléchir.[:petrus75]
Mais dans la pratique jamais tu fais ça, tu rajoutes un champs ou deux dans personne et basta.[:dawao]


---------------
Can't buy what I want because it's free -
n°1306383
maxpower44
Posté le 15-02-2006 à 15:47:21  profilanswer
 

skeye a écrit :

euh oui, très juste.[:petrus75]
 
Dans la pratique, pour pas alourdir la structure, je collerais probablement plusieurs champs de nationalité dans acteur.[:petrus75]


 
 :non: pas tres pratique pour lister tous les acteurs d'une certaine nationnalite ... Et si tu veux ajouter une troisieme nationnalite pour une persone, tu doit non seulement modifier la base de donnee mais aussi l'application ..

Message cité 1 fois
Message édité par maxpower44 le 15-02-2006 à 15:48:55
n°1306386
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:47:47  profilanswer
 

maxpower44 a écrit :

A priori, fredhali2000 est le seul juge pour savoir si c'est indipensable ou non :D
 
 
Bien sur qui va creer une nouvelle table :
personne (id_personne, ...)
nationalite (id_nationnalite, ...)
relation_persone_nationnalite (id_personne, id_nationnalite)


 
MERCI!!! :jap: :jap: :jap:
Je commencais à me demandais si j'étais con???!!! Je m'enervais sur mon pauvre clavier....
 
Ouai j'aurais dû balancer un MLD moi aussi ca aurait été plus clair!


Message édité par dwogsi le 15-02-2006 à 15:48:32
n°1306388
skeye
Posté le 15-02-2006 à 15:48:25  profilanswer
 

maxpower44 a écrit :

:non: pas tres pratique pour lister tous les acteurs d'une certaine nationnalite ...


euh.
select nom from acteur where (cod_nat1 = 'truc' or cod_nat2 = 'truc' or cod_nat3 = 'truc' ) [:pingouino]


---------------
Can't buy what I want because it's free -
n°1306394
skeye
Posté le 15-02-2006 à 15:49:57  profilanswer
 

Tu fais trop de php, toi.[:pingouino]
 
[edit]
 
ah tiens, message effacé.[:dawa]

Message cité 1 fois
Message édité par skeye le 15-02-2006 à 15:50:17

---------------
Can't buy what I want because it's free -
n°1306395
maxpower44
Posté le 15-02-2006 à 15:50:49  profilanswer
 

skeye a écrit :

euh.
select nom from acteur where (cod_nat1 = 'truc' or cod_nat2 = 'truc' or cod_nat3 = 'truc' ) [:pingouino]


tu peux me donner ton vrai nom ? que je mette ton CV directement a la poubelle si tu postule dans ma boite   :p

Message cité 1 fois
Message édité par maxpower44 le 15-02-2006 à 15:51:08
n°1306398
lorill
Posté le 15-02-2006 à 15:51:39  profilanswer
 

skeye a écrit :

euh.
select nom from acteur where (cod_nat1 = 'truc' or cod_nat2 = 'truc' or cod_nat3 = 'truc' ) [:pingouino]


c'est d'un laid.
et s'il en a 4 ??  
et s'il en a pas ?
 
beurk

n°1306402
skeye
Posté le 15-02-2006 à 15:53:12  profilanswer
 

maxpower44 a écrit :

tu peux me donner ton vrai nom ? que je mette ton CV directement a la poubelle si tu postule dans ma boite   :p


bah écoute mon CV tu le verras jamais si t'es pas capable de comprendre que parfois faut savoir faire des choix de ce genre pour pas bloater ta structure.[:itm]
 
Je bosse quotidiennement sur un soft avec une base oracle de plusieurs gigas comportant plus de 400 tables, et oui pour ce genre de conneries il arrive qu'on utilise des astuces de ce style. Et non, la structure n'est pas de moi.


---------------
Can't buy what I want because it's free -
n°1306404
skeye
Posté le 15-02-2006 à 15:54:11  profilanswer
 

lorill a écrit :

c'est d'un laid.
et s'il en a 4 ??  
et s'il en a pas ?
 
beurk


 
[:kiki]


---------------
Can't buy what I want because it's free -
n°1306405
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:54:34  profilanswer
 

skeye a écrit :

Tu fais trop de php, toi.[:pingouino]
 
[edit]
 
ah tiens, message effacé.[:dawa]


 
Ouai parcequ'en faites je me suis dis une chose :
Avec la fonction in_array(), on a un tableaux dans lequel on stock les valeurs. Or dans le cas de ta requêtes c'est les différents noms de champs qu'il faut chercher et ça ne peut pas vraiment fonctionner avec in_array(). Quoique en fait si on donnait les valeurs des champs au tableau ca marcherais... Enfin bon ca existe pas, ou alors je suis pas au courant.
 
Et oui je fais trop de php, en plus je suis sûr que l'algo de recherche tiens pas compte du tri ou non, enfin bon.... J'sui HS là...

Message cité 1 fois
Message édité par dwogsi le 15-02-2006 à 15:56:15
n°1306407
skeye
Posté le 15-02-2006 à 15:55:54  profilanswer
 

dwogsi a écrit :

Ouai parcequ'en faites je me suis dis une chose :
Avec la fonction in_array(), on a un tableaux dans lequel on stock les valeurs. Or dans le cas de ta requêtes c'est les différents noms de champs qu'il faut chercher et ça ne peut pas vraiment fonctionner avec in_array(). Quoique en fait si on donnait les valeurs des champs au tableau ca marcherais... Enfin bon ca existe pas, ou alors je suis pas au courant.


Non, les tableaux on appelle ça des tables, en sql...[:god]
Evidemment la solution idéale au point de vue conception est d'avoir une table dédiée à l'association personne/nationalité...;)


---------------
Can't buy what I want because it's free -
n°1306410
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 15:59:22  profilanswer
 

skeye a écrit :

Non, les tableaux on appelle ça des tables, en sql...[:god]
Evidemment la solution idéale au point de vue conception est d'avoir une table dédiée à l'association personne/nationalité...;)


 
En fait j'pensais à un truc du genre (pour ta conception a toi ou tu met plusieurs champs nationnalité) :
select nom from acteur where in_array('id_nat',array(cod_nat1,cod_nat2,cod_nat3))
 
Et là on pourrait en mettre à la pelle sans se compliquer la vie.

n°1306412
skeye
Posté le 15-02-2006 à 15:59:46  profilanswer
 

'fin bref, c'est un choix à faire. Sur une grosse base, créer une table spécifique risque de te bouffer des perfs pour une utilisation marginale.
 
A contrario, sur une petite base niveau perfs tu verras pas la différence, et c'est nettement plus propre.


---------------
Can't buy what I want because it's free -
n°1306413
maxpower44
Posté le 15-02-2006 à 15:59:48  profilanswer
 

skeye a écrit :

bah écoute mon CV tu le verras jamais si t'es pas capable de comprendre que parfois faut savoir faire des choix de ce genre pour pas bloater ta structure.[:itm]
 
Je bosse quotidiennement sur un soft avec une base oracle de plusieurs gigas comportant plus de 400 tables, et oui pour ce genre de conneries il arrive qu'on utilise des astuces de ce style. Et non, la structure n'est pas de moi.


tres impressionnant   :lol:  
 
Ou est ce qu'il as ecrit qu'il voulait faire une base de donnees de 400 tables ? j'ai du louper un message :) pour le moment j'en compte que 8 et de toutes manieres l'optimisation doit se faire apres la modelisation  
 

n°1306416
dwogsi
Défaillance cérébrale...
Posté le 15-02-2006 à 16:01:23  profilanswer
 

maxpower44 a écrit :

tres impressionnant   :lol:  
 
Ou est ce qu'il as ecrit qu'il voulait faire une base de donnees de 400 tables ? j'ai du louper un message :) pour le moment j'en compte que 8 et de toutes manieres l'optimisation doit se faire apres la modelisation


Moi je vois plus une base bien construite et après une bonne optimisation du traiment et de l'utilisation, au niveau du programme donc.

n°1306419
skeye
Posté le 15-02-2006 à 16:02:30  profilanswer
 

dwogsi a écrit :

En fait j'pensais à un truc du genre (pour ta conception a toi ou tu met plusieurs champs nationnalité) :
select nom from acteur where in_array('id_nat',array(cod_nat1,cod_nat2,cod_nat3))
 
Et là on pourrait en mettre à la pelle sans se compliquer la vie.


 
euh il faut garder à l'esprit que c'est un choix d'implémentation pour des cas très spécifiques, et où on sait qu'un des N de ta relation (N,N) a une valeur très faible.


---------------
Can't buy what I want because it's free -
n°1306423
maxpower44
Posté le 15-02-2006 à 16:03:35  profilanswer
 

dwogsi a écrit :

Moi je vois plus une base bien construite et après une bonne optimisation du traiment et de l'utilisation, au niveau du programme donc.


sur ce coup la, skeye a raison, il faut parfoit faire des concessions au niveau de la base de donnees, mais dans le cas qui nous concerne, ca ressemble plus a une base perso

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MERISE] - Représenter la notion de vue dans un MCD

 

Sujets relatifs
[C++/Open GL] Notion d'interface 3D[merise]association réflective
[MERISE] PB dans mon MLD ?[Merise] Notion d'inclusion, lecture d'un schéma.
[HTML] Balise méta et notion de l'heure[SQL][MCD] Lien identifiant
Passer d'une base existante au MCD / MLD[résolu][MCD]Petit problème de conception
du MCD au realtion Access 
Plus de sujets relatifs à : [MERISE] - Représenter la notion de vue dans un MCD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR