- Représenter la notion de vue dans un MCD [MERISE] - SQL/NoSQL - Programmation
Marsh Posté le 15-02-2006 à 14:53:22
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.
Marsh Posté le 15-02-2006 à 14:56:03
j'ai pas compris ta question, mais peut tu me dire avec quel logiciel tu as fais ce MCD ?
Marsh Posté le 15-02-2006 à 14:58:35
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.
Marsh Posté le 15-02-2006 à 15:15:41
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...
Marsh Posté le 15-02-2006 à 15:16:34
Et les apatrides, alors?
Marsh Posté le 15-02-2006 à 15:18:40
T'as dû t'amuser avec excel!
skeye a écrit : Et les apatrides, alors? |
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.
Marsh Posté le 15-02-2006 à 15:19:43
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
Marsh Posté le 15-02-2006 à 15:21:29
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!
Marsh Posté le 15-02-2006 à 15:21:48
dwogsi a écrit : il va quand même pas mettre du 0,N? |
Chuuuuuuut tu me bousilles ma question piège!
Marsh Posté le 15-02-2006 à 15:23:09
J'hésitais entre ignard ou plaisantain.
J'me suis trompé et je m'en excuse.
Marsh Posté le 15-02-2006 à 15:26:27
Pas grave.
Et ignare.
...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...
Marsh Posté le 15-02-2006 à 15:27:32
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.
Marsh Posté le 15-02-2006 à 15:29:17
euh...pour quelle raison?
Marsh Posté le 15-02-2006 à 15:32:30
skeye a écrit : Et les apatrides, alors? |
+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? |
du 0,N. Il vaut mieux y penser au debut que d'etre coincer apres ...
Marsh Posté le 15-02-2006 à 15:32:37
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 : 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.
Marsh Posté le 15-02-2006 à 15:34:55
dwogsi a écrit : 0,N => Associations multiples => Nouvelle table |
Bien sur que oui il faut une table des nationalités!
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"...
Marsh Posté le 15-02-2006 à 15:37:38
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.
Marsh Posté le 15-02-2006 à 15:37:57
skeye a écrit : Bien sur que oui il faut une table des nationalités! |
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.
Marsh Posté le 15-02-2006 à 15:39:21
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é.... |
Mais oussa une nouvelle table? Il faut UNE table des nationalités, point barre!!!
Marsh Posté le 15-02-2006 à 15:42:25
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????
Marsh Posté le 15-02-2006 à 15:44:28
euh oui, très juste.
Dans la pratique, pour pas alourdir la structure, je collerais probablement plusieurs champs de nationalité dans acteur.
Marsh Posté le 15-02-2006 à 15:45:46
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
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)
Marsh Posté le 15-02-2006 à 15:46:59
maxpower44 a écrit : Bien sur qui va creer une nouvelle table : |
C'est bon, j'avais oublié de réfléchir.
Mais dans la pratique jamais tu fais ça, tu rajoutes un champs ou deux dans personne et basta.
Marsh Posté le 15-02-2006 à 15:47:21
skeye a écrit : euh oui, très juste. |
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 ..
Marsh Posté le 15-02-2006 à 15:47:47
maxpower44 a écrit : A priori, fredhali2000 est le seul juge pour savoir si c'est indipensable ou non |
MERCI!!!
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!
Marsh Posté le 15-02-2006 à 15:48:25
maxpower44 a écrit : 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' )
Marsh Posté le 15-02-2006 à 15:49:57
Tu fais trop de php, toi.
[edit]
ah tiens, message effacé.
Marsh Posté le 15-02-2006 à 15:50:49
skeye a écrit : euh. |
tu peux me donner ton vrai nom ? que je mette ton CV directement a la poubelle si tu postule dans ma boite
Marsh Posté le 15-02-2006 à 15:51:39
skeye a écrit : euh. |
c'est d'un laid.
et s'il en a 4 ??
et s'il en a pas ?
beurk
Marsh Posté le 15-02-2006 à 15:53:12
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 |
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.
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.
Marsh Posté le 15-02-2006 à 15:54:11
lorill a écrit : c'est d'un laid. |
Marsh Posté le 15-02-2006 à 15:54:34
skeye a écrit : Tu fais trop de php, toi. |
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à...
Marsh Posté le 15-02-2006 à 15:55:54
dwogsi a écrit : Ouai parcequ'en faites je me suis dis une chose : |
Non, les tableaux on appelle ça des tables, en sql...
Evidemment la solution idéale au point de vue conception est d'avoir une table dédiée à l'association personne/nationalité...
Marsh Posté le 15-02-2006 à 15:59:22
skeye a écrit : Non, les tableaux on appelle ça des tables, en sql... |
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.
Marsh Posté le 15-02-2006 à 15:59:46
'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.
Marsh Posté le 15-02-2006 à 15:59:48
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. |
tres impressionnant
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
Marsh Posté le 15-02-2006 à 16:01:23
maxpower44 a écrit : tres impressionnant |
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.
Marsh Posté le 15-02-2006 à 16:02:30
dwogsi a écrit : En fait j'pensais à un truc du genre (pour ta conception a toi ou tu met plusieurs champs nationnalité) : |
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.
Marsh Posté le 15-02-2006 à 16:03:35
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
Marsh Posté le 15-02-2006 à 13:28:02
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:
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.