Re: [users-fr] Base : liaisons entre les tables
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
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
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
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
[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]