Access - relation
Fermé
BenjiBxl
-
28 févr. 2008 à 17:57
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 3 mars 2008 à 16:17
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 3 mars 2008 à 16:17
4 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
28 févr. 2008 à 20:21
28 févr. 2008 à 20:21
Bonsoir,
Il est toujours un peu difficille d'appréhender un problème nouveau sur la base d'un résumé même clair comme le tien, aussi je vais peut-être m'aventurer sur le tortueux chemin de l'erreur, mais en première réflexion et afin d'engager le dialogue :
Cette table intermédiaire (pourquoi intermédiaire ?) si tu l'organises sur la clé primaire "RéfArticle" suivi de "RéfMotclé" sur lequel tu crée un index secondaire (ou inversement "RéfMotclé" en primaire ET"RéfArticle" en secondaire suivant la fréquence supposée d'accès aux articles de presse privilégiant soit l'accès par "RéfArticle" ou soit l'accès par "RéfMotclé". )
tu obtiendrais une organisation du type : (en raisonnant sur RéfArticle" et "RéfMotclé)
RéfArticleA et RéfMotclé1
RéfArticleA et RéfMotclé4
RéfArticleA et RéfMotclé6
RéfArticleB et RéfMotclé1
RéfArticleB et RéfMotclé3
RéfArticleB et RéfMotclé5
.....................................
....................................
....................................
vu du côté clé primaire.
ET
vu du côté clé secondaire :
RéfMotclé1 et RéfArticleA
RéfMotclé1 et RéfArticleB
RéfMotclé3 et RéfArticleB
RéfMotclé4 et RéfArticleA
RéfMotclé5 et RéfArticleB
RéfMotclé6 et RéfArticleA
Tu n'aurais donc pas besoin d'ajouter de colonne(s) MC dans ta table principale, l'accès à cette table se ferait toujours sur la référence après un accès sur la table (temporaire?) réalisé au moyen de la clé primaire ou secondaire suivant le type de requête fonctionnel.
De plus avec ce type d'organisation tu ne serais pas limité à 8 MC.
C'est une réflexion "à chaud" je peux me tromper, dis moi ce que tu en penses.
Il est toujours un peu difficille d'appréhender un problème nouveau sur la base d'un résumé même clair comme le tien, aussi je vais peut-être m'aventurer sur le tortueux chemin de l'erreur, mais en première réflexion et afin d'engager le dialogue :
Cette table intermédiaire (pourquoi intermédiaire ?) si tu l'organises sur la clé primaire "RéfArticle" suivi de "RéfMotclé" sur lequel tu crée un index secondaire (ou inversement "RéfMotclé" en primaire ET"RéfArticle" en secondaire suivant la fréquence supposée d'accès aux articles de presse privilégiant soit l'accès par "RéfArticle" ou soit l'accès par "RéfMotclé". )
tu obtiendrais une organisation du type : (en raisonnant sur RéfArticle" et "RéfMotclé)
RéfArticleA et RéfMotclé1
RéfArticleA et RéfMotclé4
RéfArticleA et RéfMotclé6
RéfArticleB et RéfMotclé1
RéfArticleB et RéfMotclé3
RéfArticleB et RéfMotclé5
.....................................
....................................
....................................
vu du côté clé primaire.
ET
vu du côté clé secondaire :
RéfMotclé1 et RéfArticleA
RéfMotclé1 et RéfArticleB
RéfMotclé3 et RéfArticleB
RéfMotclé4 et RéfArticleA
RéfMotclé5 et RéfArticleB
RéfMotclé6 et RéfArticleA
Tu n'aurais donc pas besoin d'ajouter de colonne(s) MC dans ta table principale, l'accès à cette table se ferait toujours sur la référence après un accès sur la table (temporaire?) réalisé au moyen de la clé primaire ou secondaire suivant le type de requête fonctionnel.
De plus avec ce type d'organisation tu ne serais pas limité à 8 MC.
C'est une réflexion "à chaud" je peux me tromper, dis moi ce que tu en penses.
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
1 mars 2008 à 00:38
1 mars 2008 à 00:38
Bonsoir,
Merci également d'avoir pensé à me tenir informé.
Malheureusement je ne peux pas t'aider à répondre à ton interrogation sur l'existence de la requête car je ne connais absolument pas ACCESS 2000.
Par contre je me suis fait un petit scénario de test en SQL DB2, la requête en question ne semble pas compliquée (il est vrai qu'il s'agit dans ce cas d'une requête figée, c'est-à-dire une requête dans laquelle les valeurs testées sont "en dur" et le nombre de ces valeurs testées est arrêté).
A propos de ce scénario, une remarque sur un problème qui m'est apparu à la faveur des tests. Si comme je le présume, les contraintes concernant l'index primaire d'une table ACCESS 2000 sont identiques à celles d'une table DB2, à savoir que les valeurs de la clé primaire doivent être uniques, il est nécessaire d'ajouter un suffixe à la clé.
Pour les besoins de mon test j'ai ajouté (brutalement) un numéro d'ordre (1 à n pour une même référence article) à la référence de la table de jonction, ce n'est ni très élégant ni très facile à gérer. Mais peut-être as-tu déjà réglé ce problème.
A bientôt, j'espère, pour la suite de cette intéressante affaire........
Merci également d'avoir pensé à me tenir informé.
Malheureusement je ne peux pas t'aider à répondre à ton interrogation sur l'existence de la requête car je ne connais absolument pas ACCESS 2000.
Par contre je me suis fait un petit scénario de test en SQL DB2, la requête en question ne semble pas compliquée (il est vrai qu'il s'agit dans ce cas d'une requête figée, c'est-à-dire une requête dans laquelle les valeurs testées sont "en dur" et le nombre de ces valeurs testées est arrêté).
A propos de ce scénario, une remarque sur un problème qui m'est apparu à la faveur des tests. Si comme je le présume, les contraintes concernant l'index primaire d'une table ACCESS 2000 sont identiques à celles d'une table DB2, à savoir que les valeurs de la clé primaire doivent être uniques, il est nécessaire d'ajouter un suffixe à la clé.
Pour les besoins de mon test j'ai ajouté (brutalement) un numéro d'ordre (1 à n pour une même référence article) à la référence de la table de jonction, ce n'est ni très élégant ni très facile à gérer. Mais peut-être as-tu déjà réglé ce problème.
A bientôt, j'espère, pour la suite de cette intéressante affaire........
Bonjour Christian,
Voilà je suis toujours à la recherche de la bonne solution pour la requête mais un tout grand merci pour ton aide !
Si j'arrive à trouver une solution je ne manquerai pas de donner l'info via le forum. C'est étonnant, voilà une base de donnée qui semble toute simple (et qui peut être très pratique) mais dont l'aspect technique n'est pas facile ;-)
A bientôt et encore merci !
Voilà je suis toujours à la recherche de la bonne solution pour la requête mais un tout grand merci pour ton aide !
Si j'arrive à trouver une solution je ne manquerai pas de donner l'info via le forum. C'est étonnant, voilà une base de donnée qui semble toute simple (et qui peut être très pratique) mais dont l'aspect technique n'est pas facile ;-)
A bientôt et encore merci !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
3 mars 2008 à 16:17
3 mars 2008 à 16:17
Bonjour,
Veux-tu que je te "poste" le scénario de test que j'ai fait en SQL/DB2 ?
Veux-tu que je te "poste" le scénario de test que j'ai fait en SQL/DB2 ?
29 févr. 2008 à 12:18
Effectivement, ce que je nome "table intermédiaire" est en fait une table de jonction. Bonne nouvelle, ton idée fonctionne. C'est ce que j'avais déjà intuitivement tenté de faire. J'ai donc supprimer dans la table "Article" les (8) champs "RéfMotcle", et dans la construction d'un formulaire j'utilise la table de jonction pour créer une (ou des) liaison(s) entre un article et un/des mot-clés.
Il me reste qques difficultés --- mais cela progresse ;-) --- dont la plus importante est de pouvoir réaliser une requête efficace (et tout l'objectif de cette base de données tourne autours de cette requête!). Comment demander : "tous les articles qui comprennent le mot-clé X ET le mot-clé Y, etc. ?
Après recherche d'info il semble, comme tu le proposes à très juste titre, qu'une requête fonctionnelle soit la plus indiquée pour ce faire. Mais, sous ACCESS 2000, ce type de requête existe-t'elle ? (je ne trouve pas ...).
Un tout grand merci !