Relation un à plusieurs en mysql

gaouinformaticien Messages postés 25 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 10 janvier 2014 - 9 sept. 2008 à 19:13
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 10 sept. 2008 à 19:36
salut
je voudrais savoir comment crée t-on une relation un à plusieurs entre deux tables  en mysql ?

gaouinformaticien

4 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
10 sept. 2008 à 18:01
Salut:

Prenons un petit exemple classique:

            1           Passer           1,n
Client ---------------------------------> Commande

Le client peut passer une ou plusieurs commandes. De l'autre côté, une commande appartient à un et un seul client.

Une telle relation (un à plusieurs) se traduit par la migration de clef primaire de la table Client vers la table Commande pour devenir une clef étrangère.

Create Table Client (
    Id Numeric Not Null,
    Name varchar,
    Address varchar,
    Constraint Pk_Client Primary Key (Id)
);

Create Table Command (

    Id Numeric Not Null,
    Id_Client Numeric Not Null,
    Delivery_Date Date,

    Constraint Pk_Command Primary Key (Id),
    Constraint Fk_Command Foreign Key (Id_Client) References Client(Id)

);
0
gaouinformaticien Messages postés 25 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 10 janvier 2014
10 sept. 2008 à 19:19
merci pour ta reponse.
gaouinformaticien
0
gaouinformaticien Messages postés 25 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 10 janvier 2014
10 sept. 2008 à 19:21
salut commment cree t-on une relation de plusieurs à plusieuirs en mysql?
merci

gaouinformaticien
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
10 sept. 2008 à 19:36
Salut:

La morale à saisir est:

Une relation "un à plusieurs" se traduit par la migration de clef
primaire de la table Client vers la table Commande pour devenir une
clef étrangère.

Enfin, lances la création des tables en utilisant l'ordre SQL CREATE.

Create Table Client (
    Id Numeric Not Null, <------------------------------------
    Name varchar,                                                            | Ce lien (migration de clef)
    Address varchar,                                                         | schématise la relation
    Constraint Pk_Client Primary Key (Id)                    | un à plusieurs
);                                                                                        |
Create Table Command (                                              |
    Id Numeric Not Null,                                                |
    Id_Client Numeric Not Null, <---------------------------
    Delivery_Date Date,
    Constraint Pk_Command Primary Key (Id),
    Constraint Fk_Command Foreign Key (Id_Client) References Client(Id)
);

Note: Il faut faire attention au type des colonnes MySQL, ici j'ai utilisé des types qui sont supportés par le SGBD PostGreSQL. Fais les modification nécessaires si c'est nécessaire.
0
Rejoignez-nous