Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
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/03/2011, 11h55   #1
Invité régulier
 
Shatter
Étudiant
Inscription : janvier 2009
Messages : 21
Détails du profil
Informations personnelles :
Nom : Shatter
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2009
Messages : 21
Points : 9
Points : 9
Par défaut contrainte d'intégrité avec table intermédiaire

Bonjour à tous,

Voilà je suis loin d'être le meilleur en BDD, et je voudrais faire quelque chose de tout bête, seulement je bloque au niveau des clés étrangères.

J'ai 3 tables :

users
id_user
username
password
...

application
id_app
name
...

user_application
id_user
id_app

Une table contient donc la liste des utilisateurs avec diverses infos, et idem pour la liste des applications.
Dès lors qu'un utilisateur aura choisit une application, une nouvelle entrée sera définie dans la table user_application. Cette table est nécessaire puisqu'un utilisateur peut avoir plusieurs applications, et qu'une application peut être choisit par plusieurs utilisateurs.

J'ai donc deux questions :
1- Est-ce que je peux laisser la table user_application telle quelle ou je dois lui affecter une clé primaire, du style id_user_application ?

2- Dans phpMyAdmin, je suis bien allé dans Gestion des relations de la table user_application et j'ai affecté :
user_id à users.user_id
app_id à applications.app_id

Mais pourtant rien n'y fait, je peux créer une nouvelle entrée dans user_application avec des valeurs aléatoires, inexistantes dans les tables users et applications.
Comment faire pour bien intégrer cette contrainte ?

Merci d'avance pour vos réponses.
Shatter
Shatter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 13h20   #2
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 878
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 878
Points : 7 655
Points : 7 655
Je ne connais pas particulièrement phpMyAdmin, mais tes 2 champs de la table User_Application doivent effectivement être des clé étrangères référençant les clé primaires de Users et de Applications.

Ensuite tu n'as pas besoin de créer en nouveau champ pour la clé primaire, mais tu dois quand même en définir une. Celle-ci doit être définie comme étant constituée des 2 champs id_user et id_application, c'est à dire les 2 clés étrangères
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 19h45   #3
Invité régulier
 
Shatter
Étudiant
Inscription : janvier 2009
Messages : 21
Détails du profil
Informations personnelles :
Nom : Shatter
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2009
Messages : 21
Points : 9
Points : 9
Ok ça marche, merci pour cette réponse !
Shatter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h26.


 
 
 
 
Partenaires

Hébergement Web