Michel Girer a écrit :
> Docgranville <Docgranville <at> aol.com> writes:
> 
>> Bonjour,
>>
> 
>> Généralement, il est donc conseillé de créer un champ particulier, autre 
>> que la clef pri:maire (même s'il peut apparaître redondant) pour inclure 
>> des informations signifiantes.
>>
>> C'est en tout cas ce que j'ai pu lire régulièrement sur cette liste et 
>> c'est ce que je me suis mis à pratiquer depuis.
>>
>> Espérant avoir (un peu) aidé.
>>
>> A+
>>
> 
> 
> Merci!
> Je pensais essayer la solution de Laurent Balland-Poirier (de 
> garder une clé auto-incrémentée qui démarre à 0, et d'avoir un champ 
> supplémentaire (ID_client) = clé + 1 ou 1421.)

Je m'en garderais ! (désolé Laurent)

> 
> Mais il y a une autre difficulté que je viens de découvrir: pour établir une
> relation entre tables, l'un au moins des champs doit être une clé primaire !
> Or je voudrais établir la relation avec l'ID_Client ...

Je reprends ce qu'à dit Docgranville et j'insiste dans ce sens : une clef
primaire ne devrait pas avoir de sens pour le domaine. Un champ autoincrémenté
est donc parfait mais tu devrais séparer ton ID client de ce champ autoinc et
réaliser tes jointures sur l'autoinc.

Imagine : tu réalises ce que tu voudrais, c-à-d utiliser ton champ IDclient
comme clef promaire. Et un jour, pour une raison X ou Y (qui peut être
extérieure à ton entreprise ; exemple : tu es racheté par Microsoft), tu DOIS
changer la structure de ton champ IDclient. Kèktufais alors ? Tu refais TOUTES
tes relations et tu galères (t'en oublieras surement). Avec un champ
indépendant, tu peux changer la structure de ton IDcient tous les jours, sans
AUCUNE conséquence sur la base.


Bon courage,
-- 
Jean-Francois Nifenecker, Bordeaux

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à