Bonjour.
Voici une solution possible :
tblClient
ClefClient (numero auto, clef primaire)
AutreInfo (ex : Nom)
tblTelephone
ClefTelephone (numero auto, clef primaire)(numero auto, clef primaire)
NumTelephone (ClefPrimaire ou Index unique, Texte 255 caracteres)
tblTelephoneClient
ClefTelephoneClient (autonum, clef primaire)
ClefClient (entier long, en interne les Autonum sont des entiers longs donc quand c'est une clef etrangere dans une relation il faut utiliser Entier Long du cote de la table utilisatrice.)
NumTelephone (Texte 255 caracteres)
DateDebutTelphone (DateHeure, 1901/01/01 pour le 1er numero ou date d'enregistrement du client)
DateFinTelephone (DateHeure, 9999/12/31 pour le numero courant)
Index unique compose (ou clef primaire composee) de [ClefClient], [NumTelephone], [DateDebutTelephone].
- En relation avec tblClient
- En relation avec tblTelephone
L'utilisation d'une date de debut et d'une date de fin permet de facilement trouver le numero de telephone a une date donnees.
Si tu ne prevois pas de recherches de ce type, tu peux te contenter de la DateDebut (ou DateMAJ ce qui serait plus signficatif).
Cette table ne peu donc pas avoir de clé primaire.
Une table peut toujours (et il est recommande qu'elle ait, ca ameliore les performance parait-il) avoir une clef primaire soit par composition de divers champ soit en utilisant un AutoNum.
Il est vrai que dans le cas de l'autonum la clef elle meme ne porte pas d'information. Elle se contente d'identifier l'enregistrement donc strictosensu ce n'est pas une clef, juste un numero.
A titre personnel, et c'est discute, je mets toujours un champ autonum que je defini comme etant ma clef primaire.
Si j'ai un autre champ (ou combinaison de champs) qui peut servir de clef primaire, je cree un index unique.
Par exemple pour mes tables de reference comme par ex :
tblSexe
ClefSexe (Autonum, clef primaire)
CodeSexe (Texte 255 caracteres, Index unique)
DescSexe (Texte 255 caracteres, Index unique)
Apres je decide si j'utilise [Code] ou [Clef] pour mes relations et ma preference va a [Clef] si je pense que Code va etre modifie par l'utilisateur.
Et parfois je remplace le autonum par un entier long saisi manuellement afin de pouvoir faire des tests dans le code en etant sur que la valeur va etre constante.
Attention les indexs uniques peuvent accepter des champs Null et la ils cessent d'etre uniques ce qui est un peu penible mais qu'on peut controller par code a la saisie.
A+
Partager