OVH Cloud OVH Cloud

Modélisation

3 réponses
Avatar
Jean-Jacques Antille
Bonjour!
Je me pose souvent la question suivante sur ce genre de situation (1 table
reliée à 2 autres mais de deux manières différentes)
Il s'agit par exemple de répartir les élèves dans des classes sachant qu'un
élève peut appartenir à deux classes (relation de N.N)
j'ai une table contenant 2 champs (3):
- IDEleve
- IDClasse
Soit je mets une clé composite sur ces deux champs

soit j'utilise 3 champs
- idRepartEleves (clé primaire qui sera ensuite utilisée dans la relation
avec la 3ème table, par exemple Notes)
- IDEleve
- IDClasse

Quelle est, selon vous, la meilleure solution?
Y a-t-il un forum sur la modélisation des données?
Merci de vos réponses.

--
Cordiales salutations.
Jean-Jacques

http://www.webmister.ch/school/accueil.asp
027 458 40 61
078 665 75 74

3 réponses

Avatar
Michel Walsh
Salut,



Personnellemet, je préfère les clés primaires sur un seul champ
numérique car la valeur de la clée primaire est réécrite pour chaque index
(prend donc moins de place, donc moins d'accès sur disque requis, donc plus
rapide) et la syntaxe SQL est souvent plus aisée, moins lourde, comme avec:


... WHERE a.pk IN( SELECT b.pk FROM .... )


versus la syntaxe plus lourde

.... WHERE EXISTS( SELECT ... WHERE a.pk1=b.pk1 AND a.pk2 = b.pk2 )


si la clé primaire est composée sur pk1 et pk2.





Espérant être utile,
Vanderghast, Access MVP



"Jean-Jacques Antille" wrote in message
news:400c7b9c$
Bonjour!
Je me pose souvent la question suivante sur ce genre de situation (1 table
reliée à 2 autres mais de deux manières différentes)
Il s'agit par exemple de répartir les élèves dans des classes sachant
qu'un

élève peut appartenir à deux classes (relation de N.N)
j'ai une table contenant 2 champs (3):
- IDEleve
- IDClasse
Soit je mets une clé composite sur ces deux champs

soit j'utilise 3 champs
- idRepartEleves (clé primaire qui sera ensuite utilisée dans la relation
avec la 3ème table, par exemple Notes)
- IDEleve
- IDClasse

Quelle est, selon vous, la meilleure solution?
Y a-t-il un forum sur la modélisation des données?
Merci de vos réponses.

--
Cordiales salutations.
Jean-Jacques

http://www.webmister.ch/school/accueil.asp
027 458 40 61
078 665 75 74




Avatar
Jean-Jacques Antille
Merci Michel pour ta réponse.
Bon dimanche.

--
Cordiales salutations.
Jean-Jacques

http://www.webmister.ch/school/accueil.asp
027 458 40 61
078 665 75 74
"Michel Walsh" a écrit dans le message
de news:
Salut,



Personnellemet, je préfère les clés primaires sur un seul champ
numérique car la valeur de la clée primaire est réécrite pour chaque index
(prend donc moins de place, donc moins d'accès sur disque requis, donc
plus

rapide) et la syntaxe SQL est souvent plus aisée, moins lourde, comme
avec:



... WHERE a.pk IN( SELECT b.pk FROM .... )


versus la syntaxe plus lourde

.... WHERE EXISTS( SELECT ... WHERE a.pk1=b.pk1 AND a.pk2 = b.pk2 )


si la clé primaire est composée sur pk1 et pk2.





Espérant être utile,
Vanderghast, Access MVP



"Jean-Jacques Antille" wrote in message
news:400c7b9c$
Bonjour!
Je me pose souvent la question suivante sur ce genre de situation (1
table


reliée à 2 autres mais de deux manières différentes)
Il s'agit par exemple de répartir les élèves dans des classes sachant
qu'un

élève peut appartenir à deux classes (relation de N.N)
j'ai une table contenant 2 champs (3):
- IDEleve
- IDClasse
Soit je mets une clé composite sur ces deux champs

soit j'utilise 3 champs
- idRepartEleves (clé primaire qui sera ensuite utilisée dans la
relation


avec la 3ème table, par exemple Notes)
- IDEleve
- IDClasse

Quelle est, selon vous, la meilleure solution?
Y a-t-il un forum sur la modélisation des données?
Merci de vos réponses.

--
Cordiales salutations.
Jean-Jacques

http://www.webmister.ch/school/accueil.asp
027 458 40 61
078 665 75 74








Avatar
Jean-Jacques Antille
Merci beaucoup Michel. Très sympa de ta part.
Bonne journée.

--
Cordiales salutations.
Jean-Jacques

http://www.webmister.ch/school/accueil.asp
027 458 40 61
078 665 75 74
"Michel Walsh" a écrit dans le message
de news:
Salut,



Personnellemet, je préfère les clés primaires sur un seul champ
numérique car la valeur de la clée primaire est réécrite pour chaque index
(prend donc moins de place, donc moins d'accès sur disque requis, donc
plus

rapide) et la syntaxe SQL est souvent plus aisée, moins lourde, comme
avec:



... WHERE a.pk IN( SELECT b.pk FROM .... )


versus la syntaxe plus lourde

.... WHERE EXISTS( SELECT ... WHERE a.pk1=b.pk1 AND a.pk2 = b.pk2 )


si la clé primaire est composée sur pk1 et pk2.





Espérant être utile,
Vanderghast, Access MVP



"Jean-Jacques Antille" wrote in message
news:400c7b9c$
Bonjour!
Je me pose souvent la question suivante sur ce genre de situation (1
table


reliée à 2 autres mais de deux manières différentes)
Il s'agit par exemple de répartir les élèves dans des classes sachant
qu'un

élève peut appartenir à deux classes (relation de N.N)
j'ai une table contenant 2 champs (3):
- IDEleve
- IDClasse
Soit je mets une clé composite sur ces deux champs

soit j'utilise 3 champs
- idRepartEleves (clé primaire qui sera ensuite utilisée dans la
relation


avec la 3ème table, par exemple Notes)
- IDEleve
- IDClasse

Quelle est, selon vous, la meilleure solution?
Y a-t-il un forum sur la modélisation des données?
Merci de vos réponses.

--
Cordiales salutations.
Jean-Jacques

http://www.webmister.ch/school/accueil.asp
027 458 40 61
078 665 75 74