Re: [users-fr] Base : liaisons entre les tables

2007-01-13 Par sujet brutemple
Selon Jean-Francois Nifenecker [EMAIL PROTECTED]:

 [EMAIL PROTECTED] a écrit :
 
  Ok, et pour le cas d'une relation n - n  où un même individu (imaginons-le)
  puisse avoir plusieurs niveaux d'études ?

 Il te faut alors une table supplémentaire T_NivIndividus
 avec les colonnes
 ID_INDIV, Integer (la valeur est trouvée dans la table T_Individus)
 ID_NIV, Integer (la valeur est trouvée dans la table T_Niveaux)
 La clef est ID_INDIV + ID_NIV

 --
 Jean-Francois Nifenecker, Bordeaux

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




merci beaucoup.

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



[users-fr] Base : liaisons entre les tables

2007-01-12 Par sujet brutemple


Bonjour,

J'ai encore un peu de mal à comprendre les liaisons entre les tables avec Base.

J'ai l'impression qu'on ne peut lier deux champs issus de deux tables
différentes que si l'un des deux est une clé primaire.
Ce qui signifie pour moi que, dans la mesure où les deux champs doivent être de
nature identique et qu'une clé primaire est souvent de type INTEGER, on est
obligé de travailler avec des codes. Donc le champ lié devra être un code.

Par exemple :

Une une table principale avec des individus (nom, prénom, age...). Mais je
souhaite indiquer d'autre caractérisques qui reviennent souvent (niveau
d'étude, opinion politique...).

Je crée donc une table T_NIVEAU
avec comme champ
id_niveau  type INTEGER (clé)
niveau_étude type VARCHAR


Je crée également une table T_OPINION
avec comme champ
id_opinion type INTEGER (clé)
opinion type VARCHAR


Si je souhaite lier ma table T_INDIVIDU avec la table T_NIVEAU et la table
T_OPINION, je ne peux le faire qu'avec la clé primaire (est-ce vrais ?)
Dans ce cas, je me retrouve à travailler avec des codes, ce qui n'est pas très
explicite dans ma table T_INDIVIDU

Merci de vos éclairages sur ce sujet.






Me tromp-je ?

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



Re: [users-fr] Base : liaisons entre les tables

2007-01-12 Par sujet Manuel NAUDIN

Le 12/01/07, [EMAIL PROTECTED] [EMAIL PROTECTED] a écrit :




Bonjour,



Bonjour,




J'ai encore un peu de mal à comprendre les liaisons entre les tables avec
Base.

J'ai l'impression qu'on ne peut lier deux champs issus de deux tables
différentes que si l'un des deux est une clé primaire.
Ce qui signifie pour moi que, dans la mesure où les deux champs doivent
être de
nature identique et qu'une clé primaire est souvent de type INTEGER, on
est
obligé de travailler avec des codes. Donc le champ lié devra être un code.



il y a déjà deux cas à étudier (au moins) : relation (1 à n) ou relation (n
à n).




Par exemple :

Une une table principale avec des individus (nom, prénom, age...). Mais je
souhaite indiquer d'autre caractérisques qui reviennent souvent (niveau
d'étude, opinion politique...).



je crois que la constitution d'un fichier comportant des informations
nominatives avec les opinions politiques (ou religieuses d'ailleurs) est
tout simplement interdite en France (soit dit en passant)




Je crée donc une table T_NIVEAU
avec comme champ
id_niveau  type INTEGER (clé)
niveau_étude type VARCHAR


Je crée également une table T_OPINION
avec comme champ
id_opinion type INTEGER (clé)
opinion type VARCHAR


Si je souhaite lier ma table T_INDIVIDU avec la table T_NIVEAU et la table
T_OPINION, je ne peux le faire qu'avec la clé primaire (est-ce vrais ?)
Dans ce cas, je me retrouve à travailler avec des codes, ce qui n'est pas
très
explicite dans ma table T_INDIVIDU



dans ce cas, chaque individu n'a qu'une opinion et un seul niveau d'études.
Il s'agit de deux relations (1 à n) (1 opinion vers n individus).
Il faut effectivement que la clé primaire de T_OPINION soit inscrite dans un
champ de même type dans la table T_INDIVIDU. mais rien ne t'oblige à ce que
la clé primaire de T_OPINION soit un Integer, tu peux créer une table
T_OPINION
nom_opinion Varchar clé primaire

et créer un champ varchar dans T_INDIVIDU, appellons le opinion et lier
les deux champs.
Mais par exemple dans une table T_INDIVIDU, il est difficile d'utiliser le
nom comme clé primaire au cas (probable) où il y aurait des homonymes.




Merci de vos éclairages sur ce sujet.



Voilà un début de réflexion.

Manuel


Re: [users-fr] Base : liaisons entre les tables

2007-01-12 Par sujet brutemple
Selon Manuel NAUDIN [EMAIL PROTECTED]:

 Le 12/01/07, [EMAIL PROTECTED] [EMAIL PROTECTED] a écrit :

 
 
  Bonjour,


 Bonjour,



  J'ai encore un peu de mal à comprendre les liaisons entre les tables avec
  Base.
 
  J'ai l'impression qu'on ne peut lier deux champs issus de deux tables
  différentes que si l'un des deux est une clé primaire.
  Ce qui signifie pour moi que, dans la mesure où les deux champs doivent
  être de
  nature identique et qu'une clé primaire est souvent de type INTEGER, on
  est
  obligé de travailler avec des codes. Donc le champ lié devra être un code.


 il y a déjà deux cas à étudier (au moins) : relation (1 à n) ou relation (n
 à n).



  Par exemple :
 
  Une une table principale avec des individus (nom, prénom, age...). Mais je
  souhaite indiquer d'autre caractérisques qui reviennent souvent (niveau
  d'étude, opinion politique...).


 je crois que la constitution d'un fichier comportant des informations
 nominatives avec les opinions politiques (ou religieuses d'ailleurs) est
 tout simplement interdite en France (soit dit en passant)





Oui, j'en suis tout à fait conscient, mais ce n'est qu'un exemple et c'est la
seule idée simple qui me soit venue ce matin en rédigeant ce message.
C'est peut-être maladroit, je te l'accorde.






  Je crée donc une table T_NIVEAU
  avec comme champ
  id_niveau  type INTEGER (clé)
  niveau_étude type VARCHAR
 
 
  Je crée également une table T_OPINION
  avec comme champ
  id_opinion type INTEGER (clé)
  opinion type VARCHAR
 
 
  Si je souhaite lier ma table T_INDIVIDU avec la table T_NIVEAU et la table
  T_OPINION, je ne peux le faire qu'avec la clé primaire (est-ce vrais ?)
  Dans ce cas, je me retrouve à travailler avec des codes, ce qui n'est pas
  très
  explicite dans ma table T_INDIVIDU


 dans ce cas, chaque individu n'a qu'une opinion et un seul niveau d'études.
 Il s'agit de deux relations (1 à n) (1 opinion vers n individus).
 Il faut effectivement que la clé primaire de T_OPINION soit inscrite dans un
 champ de même type dans la table T_INDIVIDU. mais rien ne t'oblige à ce que
 la clé primaire de T_OPINION soit un Integer, tu peux créer une table
 T_OPINION
 nom_opinion Varchar clé primaire

 et créer un champ varchar dans T_INDIVIDU, appellons le opinion et lier
 les deux champs.
 Mais par exemple dans une table T_INDIVIDU, il est difficile d'utiliser le
 nom comme clé primaire au cas (probable) où il y aurait des homonymes.




Ok, et pour le cas d'une relation n - n  où un même individu (imaginons-le)
puisse avoir plusieurs niveaux d'études ?


Merci d'avance de votre aide


  Merci de vos éclairages sur ce sujet.


 Voilà un début de réflexion.

 Manuel



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



Re: [users-fr] Base : liaisons entre les tables

2007-01-12 Par sujet Jean-Francois Nifenecker

[EMAIL PROTECTED] a écrit :


Ok, et pour le cas d'une relation n - n  où un même individu (imaginons-le)
puisse avoir plusieurs niveaux d'études ?


Il te faut alors une table supplémentaire T_NivIndividus
avec les colonnes
ID_INDIV, Integer (la valeur est trouvée dans la table T_Individus)
ID_NIV, Integer (la valeur est trouvée dans la table T_Niveaux)
La clef est ID_INDIV + ID_NIV

--
Jean-Francois Nifenecker, Bordeaux

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