Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation
Modélisation Forum d'entraide pour les diagrammes UML et les MCD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2011, 12h20   #1
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Par défaut Relation Simple entre 2 tables

J'ai 2 entité une donnee et l'autre pays

en gros je reçois plusieurs enregistrement et j'aimerai avoir une table unique pays qui répertorie tous mes pays sans doublon

Table donnée

ID_donnee INT PK
donnée VARCHAR(45)
pays VARCHAR(45)
indicateur VARACHAR(45)

Table pays

ID_pays PK
pays



J'ai un soucis dans la table pays c'est sure....comment lier ces tables en SQL
qui doit être PK qui doit être FK
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 12h25   #2
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Il faut une clé UNIQUE ?
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 14h18   #3
Membre chevronné
 
Avatar de slim
 
Homme Salim Chami
Ingénieur développement logiciels
Inscription : décembre 2002
Messages : 651
Détails du profil
Informations personnelles :
Nom : Homme Salim Chami
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Conseil

Informations forums :
Inscription : décembre 2002
Messages : 651
Points : 655
Points : 655
Salut,

Ton soucis est dans la table Donnee.
La propriété pays de cette table doit être du même type que celle de la clé primaire de pays. Tu dois la déclarer également comme étant une clé étrangère (foreign key) faisant référence à l'id de la table pays.
Change son nom tant que tu y es => fk_pays
slim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 15h24   #4
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Je pense avoir un souci de conception...
Je veux pas avoir 300fois le meme pays ...
je peux pas faire une clé étrangère sur une clé qui n'est pas primaire
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 15h35   #5
Membre chevronné
 
Avatar de slim
 
Homme Salim Chami
Ingénieur développement logiciels
Inscription : décembre 2002
Messages : 651
Détails du profil
Informations personnelles :
Nom : Homme Salim Chami
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Conseil

Informations forums :
Inscription : décembre 2002
Messages : 651
Points : 655
Points : 655
Citation:
Envoyé par tidou95220 Voir le message
Je pense avoir un souci de conception...
Oui...


Citation:
Envoyé par tidou95220 Voir le message
Je veux pas avoir 300fois le meme pays ...
300 fois le même pays dans quelle table ?


Citation:
Envoyé par tidou95220 Voir le message
je peux pas faire une clé étrangère sur une clé qui n'est pas primaire
l'id de la table Pays est bien une clé primaire ?

Tu peux m'expliquer pourquoi tu aura 300 fois la même valeur ?

Remarque : je pense que ton sujet n'est pas dans le bon forum. Il faudrait le déplacer dans conception.
slim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 15h49   #6
Membre chevronné
 
Avatar de slim
 
Homme Salim Chami
Ingénieur développement logiciels
Inscription : décembre 2002
Messages : 651
Détails du profil
Informations personnelles :
Nom : Homme Salim Chami
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Conseil

Informations forums :
Inscription : décembre 2002
Messages : 651
Points : 655
Points : 655
Table donnée
Code :
1
2
3
4
5
6
7
ID_donnee INT PK
libelle VARCHAR(45)
fk_pays INT
indicateur VARACHAR(45)

-> add constraint fk_pays.... pour la clé secondaire

Table pays

Code :
1
2
ID_pays PK
libelle VARCHAR(45)
slim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h00   #7
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
300x dans la table donnée dans le champs pays...
vue que j'ai plusieurs enregistrement... je peux avoir 50fois la france 30fois le brésil... et moi en gros je veux faire une table qui sortirai
France
Brésil

et rien d'autre pas

France
France
France
Bresil
Bresil
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h04   #8
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
Je comprend pas trop ton fk_pays INT dans ma table donnée....
moi c'est pas un INT c'est un VARCHAR mon pays....
Arf merci
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h17   #9
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 983
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 983
Points : 1 693
Points : 1 693
Bonjour,

Tu dois lier ta clé étrangère fk_pays de ta table données à la clé primaire id_pays de ta table pays.

De cette manière tu n'auras qu'un seul identifiant pour un pays dans ta table pays.
Par contre tu auras automatiquement plusieurs fois la même clé étrangère dans ta table données car d'autres champs entres en compte (id_donnee, libelle et indicateur).

Si ce n'est pas clair le plus simple est de nous poster un exemple de résultat attendu.
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h34   #10
Membre chevronné
 
Avatar de slim
 
Homme Salim Chami
Ingénieur développement logiciels
Inscription : décembre 2002
Messages : 651
Détails du profil
Informations personnelles :
Nom : Homme Salim Chami
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Conseil

Informations forums :
Inscription : décembre 2002
Messages : 651
Points : 655
Points : 655
Bon je fais un dessin

Avec la solution qu'on t'a proposé tu aura par exemple dans la base de données :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Table Donnee
---------------------------------------------
| id_donnee | libelle | indicateur | fk_pays |
---------------------------------------------
|      1        |    A   |   a          |     3       |
---------------------------------------------
|      2        |     B  |    b          |    1       |
----------------------------------------------

Table Pays
-------------------------
|      id_pays  |     libelle | 
-------------------------
|       1         |  France  | 
-------------------------
|       2        |   Espagne | 
 -------------------------
 |      3       |  Allemagne  | 
  -------------------------
Donc pour la donnée 1, tu aura l'Allemagne et pour la donnée 2, tu aura la France.
slim est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/12/2011, 16h38   #11
Nouveau Membre du Club
 
Inscription : novembre 2008
Messages : 180
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 180
Points : 28
Points : 28
une clé primaire peut etre de type varchar ? (pour ma table pays)
tidou95220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 16h44   #12
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 983
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 983
Points : 1 693
Points : 1 693
Ta clé primaire ici c'est id_pays.
Pourquoi veux-tu mettre ta clé primaire sur ton libelle ?
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 17h31   #13
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Bonjour Tidou95220, Slim et Lola06,

Je me permets de m'immiscer, Slim et Lola06, désolé...

Tidou95220, ton souhait est flou (pour le moins...). A partir de
Citation:
Envoyé par Tidou95220
Table donnée:
ID_donnee INT PK
donnée VARCHAR(45)
pays VARCHAR(45)
indicateur VARACHAR(45)
qui contient plusieurs lignes pour un même pays, souhaites-tu obtenir une
Citation:
Envoyé par Tidou95220
Table pays
ID_pays PK
pays
qui ne contiendrait qu'une seule ligne par pays (PK) ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h32.


 
 
 
 
Partenaires

Hébergement Web