|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 5 ![]() |
Bonjour,
Je débute avec Access et j'ai du mal à modéliser mes tables : J'ai une tables contenant des points, la clé primaire est un numéro auto et il y a aussi plusieurs autre informations. Je souhaite créer des segments à partir de ces points, donc à chaque fois un point A et un point B. J'ai donc une relation 2 à plusieurs : un segments contient deux points, un point peut faire partir de plusieurs segments. J'ai un peu cherché et il semblerai que la solution est de créer une table de jointure, c'est ce que j'ai fait (voir image jointe). Tout d'abord, pouvez-vous me confirmer que c'est la bonne solution ? Ensuite mon problème réside pour la saisie, qui consistera plutôt à l'import de données depuis Excel sous la forme : - numéro de segment - numéro du point A - numéro du point B - autres caractéristiques qui devraient être stockée dans la table point_segment (donc en relation avec A ou B) - autres caractéristiques qui vont dans la table segment Comment faire ? Je vous remercie par avance de m'apporter vos lumières. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
bonsoir,
quelle est la signification du champ [coté] dans la table [Point-segment] ? |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 5 ![]() |
|
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Ben07 et Fabien,
Intéressante discussion à laquelle je me permets de participer. Citation:
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
salut Richard,
Citation:
L'autre alternative à la table [point_segment] étant naturellement de mettre deux clés étrangères dans [Segments]: Segments(idSegment, ..., #idPointA, #idPointB) |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 5 ![]() |
Bonsoir,
Citation:
Citation:
|
||
|
|
00
|
|
|
#7 | |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 5 ![]() |
Citation:
1) les informations spécifiques à chaque point d'un segment sont nombreuses : je me retrouve donc avec info1_A, info1_B, info2_A, info2, etc. au final j'ai une table énorme (x2). 2) lorsque j'ai besoin d'obtenir la liste de tous les points utilisés dans des segments, je suis obligé de faire une requête qui liste tous les points A puis la même qui liste tous les points B et ensuite de faire une union entre ces requêtes. Le résultat de cette union ne me permet plus d'avoir une sous feuille de donnée qui liste les segments auquels les points appartiennent. |
|
|
|
00
|
|
|
#8 | ||||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
3 choses :
*** 1 *** Citation:
*** fin 1 *** *** 2 *** Citation:
Citation:
*** fin 2 *** *** 3 *** Dans ta table segment, tu as : - N° (clé primaire, numéro auto) - Distance - Angle A->B Sachant que Citation:
Un segment est un ensemble de 2 points donc, une droite : je n'ai pas compris ce que vient faire l'angle A-B là dedans. *** fin 3 ***
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 5 ![]() |
point 2 : Ce n'est pas contradictoire, la table point est déjà existante, que ce soit des numéros auto ne change rien, c'est juste un identifiant unique qui désigne un point (d'ailleurs en réalité, ce n'est pas un numéro auto).
point 3 : C'est l'angle que forme le segment par rapport à l'axe des abcisse (par exemple). Si je connais l'angle que forme le segment dans la direction A vers B, je peux calculer aussi celui entre B et A (+180° s'il est entre 0 et 179, - 180° sinon) donc aucun intérêt de stocker les deux valeurs. |
|
|
00
|
|
|
#10 | |||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Ben07,
Citation:
Citation:
Pour en revenir à ta problématique d'origine : Oui, ton schéma est correct. Personnellement, je préfère utiliser la méthode décrite par Fabien, concernant la table Point_Segment, soit : - Id_Point_Segment (clé primaire, numéro auto) - Num_Point - Num_Segment - Cote ==> ne pas oublier de créer un index unique sur le couple Num_Point/Num_Segment. Cette solution s'adapte à l'emploi des assistants (je ne connais pas VBA), notamment pour les liaisons "champ père" / "champ fils" des sous-formulaires. Mais la structure : - Num_Point (clé primaire) - Num_Segment (clé primaire) - Cote est, également, correcte. Citation:
- dans le formulaire Segment, un sous-formulaire sur Point-Segment qui affecte des Points (liste déroulante) à la table Point-Segment, tout en gardant, par défaut et non modifiable, la clé de Segment ; - dans le formulaire Point, l'inverse. En cas d'importation d'un fichier Excel : le but, en final, étant de retrouver les clés pour les "mixer" entre elles, tu devras faire des liens entres libellés et en déduire la clé. Bien entendu, cela suppose que les libellés en question sont uniques. L'unicité devrait être contrôlée avant chaque importation.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com