IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

MySQL server " clé etrangére"


Sujet :

MySQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut MySQL server " clé etrangére"
    salut

    merci de m'aider vraiment je suis coincé!!!!!!
    création 3 tables :
    table utilisateurs : id_user, user_name , password
    table type : id_tpe, tpe_libelle
    table eve : id_tpe, id_user

    avec
    Les attributs en gras représentent les clés primaires .
    Les attributs souligné représentent les clés étrangères.

    le code pour crée la table utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table utilisateur (
         id_user  smallint unsigned auto_increment ,
         user_name varchar (50) not null,
         password   smallint unsigned not null ,
         primary key (id_user)
        );
    le code pour crée la table type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table type  (
         id_tpe  smallint unsigned auto_increment ,
         tpe_libelle varchar (50) not null,
         primary key (id_tpe)
        );
    tous ca marche
    le problème est la
    (table évènements exactement avec la création de les clés étrangères )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table eve  (
         id_user  smallint unsigned, 
         id_tpe  smallint unsigned,
         Primary Key (id_user, id_tpe),
         Foreign Key (id_user) references utilisateur(id_user),
         Foreign Key (id_tpe) references type(id_tpe)
    );
    mais comment je vérifier que ces sont deux clés étrangères?!!
    car quant je tape
    la resulta un table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    field : id_suer , id_tpe 
    type : smallint  unsigned (pour les deux )
    null : no (pour les deux)
    key : pri (pour les deux )
    default : 0 (pour les deux )
    extra : ( rien pour les deux )
    merci de m'aider

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Pour une simple vérification, il est possible de faire:
    Pour plus d'information, il faudra faire une requête sur les tables de la base information_schema.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut

    merci Oishiiii

    j'ai fais ca :
    dans la table utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into utilisateur ( user_name , password ) values ( 'wasim ',123);
    et dans la table type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into type (tpe_libelle) values (' entrer');
    c'est bien passer pour le moment.
    pour table eve où les clés étrangères c'est pas automatiquement id_user et id_tpe sont inscrit ?

    mon but est de faire que:

    un utilisateur qui possède ce password et user_name a entrer or sortir ( type d'évènement )dans la salle .

    utilisateur -> table utilisateur champs : user_name et password
    enter or sortir -> table type champs : tpe_libelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select user_name, password , tpe_libelle
      from utilsiateur , type , eve 
    where utilisateur.id_user = eve.id_user
    and 
    type.id_tpe = eve.id_tpe
    ;
    remarque : tous ce update et delete ....etc ce fais par l'interface java (netbeans)

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Citation Envoyé par pikamo Voir le message
    pour table eve où les clés étrangères c'est pas automatiquement id_user et id_tpe sont inscrit ?
    La table de jointure (eve) ne s'alimente pas toute seule.
    Il faut récupérer les identifiants de l'utilisateur et du type et réaliser l'INSERT "à la main".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO eve(id_tpe, id_user) VALUES (4, 8);
    Pour récupérer la valeur dernière valeur générée par une colonne auto-incrémentée en SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LAST_INSERT_ID();
    ou avec PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lastId = mysql_insert_id();
    Vous trouverez certainement plus d'infos dans le forum Java.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut

    merci et désolé moi svp , c'est ma 1ere fois que j'ai crée une base de données avec MySQL server


    j'ai cherche un peu et j'ai trouve ca :
    ON DELETE CASCADE ON UPDATE CASCADE, !!!
    avec ces options , le table eve peut automatiquement inscrit id_user et id_tpe ??!!

  6. #6
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Non, la table "eve" ne peux pas s'alimenter toute seule, c'est impossible. C'est à vous de choisir les valeurs que vous insérer.

    ON DELETE CASCADE sur une clé étrangère signifie que si l'on supprime une ligne dans la table parent, toutes les lignes de la table enfant lui faisant référence seront supprimées automatiquement.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut

    comment je peur faire un autre table "eve" peux s'alimenter toute seule (j'ai fais drop table eve et j'ai fais un autre create table )

  8. #8
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    le but de l'application est de récupère l'entre et le sortie ( l'heure et date) d'un personne ( déjà enregistré dans la base de données ) .

    comment ja fais avec cette base de données ?!!

    je me sent perdu la !!!

  9. #9
    Membre actif
    Homme Profil pro
    Analyst
    Inscrit en
    Juillet 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyst
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 150
    Points : 217
    Points
    217
    Par défaut
    Bonjour,
    Je comprend pas trop:
    Tu as une table "utilisateur" qui contient les utilisateurs enregistrés.
    Tu as une table "type" qui contient les types d'evenements possibles.
    Tu as une table "eve" qui contient un evenement

    " but de l'application est de récupère l'entre et le sortie ( l'heure et date) d'un personne ( déjà enregistré dans la base de données ) ."
    1) Ta table eve doit etre modifié pour avoir de nouveau champs date/heure
    2) Tu dois donc inserer dans "eve", et ce quand l'utilisateur fait une entrée ou une sortie.


    Sinon, on peut inserer dans une table grâce à un trigger (Par exemple: quand j'insere dans table xxxx, faire insere dans yyyy), mais je vois pas avec l'exemple fourni.

    Le but de la Clé étrangere est de contrôler la validité de la base et non pas d'inserer.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut

    merci ElbeDD,

    *une table "utilisateur" qui contient les utilisateurs enregistrés , par exemple 3 utilsateur -> 3 id_user 1,2 et 3
    *une table "type" qui contient les types d'evenements possibles c ' est à dire deux type possible entré or sortir.
    *"eve" qui contient un evenement date_heure entre , dat_heure sortir ( type datetime) ,#id_suer et #id_tpe


    par l'interface java , utilisateur (qui possède déjà un password et login ) saisit ses coordonnées, on vérifier s'il exite déjà dans la base ( j'ai testé avec un petit exemple et code java et cé bien marché la connexion et la vérification ) quant il clik sur le bouton" ok " pour connecté automatiquement j'insert dans la table type "entré" et dans la table eve la date_heure d'entrée ( mais je sais pas comment je dit à la base ce utilsateur qui l'id_user = 2 par exemple ?!!!)

  11. #11
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    salut
    merci à tous

    table eve contient justement clés étrangères id_user et id_tpe ( pas key primary)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MySQL server "clé etrangère"
    Par pikamo dans le forum JDBC
    Réponses: 2
    Dernier message: 28/03/2010, 12h11
  2. [MySQL] Problème de rquête avec Quôte
    Par yom17 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/10/2006, 10h58
  3. ERROR 2003: Can't connect to MySQL server on 'localhost'...
    Par tonton54 dans le forum Installation
    Réponses: 8
    Dernier message: 25/04/2004, 16h51
  4. [Connexion MySQL] Can't connect to MySQL server
    Par mat_dum dans le forum Outils
    Réponses: 12
    Dernier message: 17/07/2003, 07h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo