Clé étrangère multiple.

Salut chers amis, j'aimerais savoir s'il est possible d'afecter plus d'une clé étrangère à une table ? Et si c'est possible sous MySQL, jdite mois svp comment le faire ?

--
MEM.

2 réponses

  1. Bonjour.
    Si je résume votre demande, vous souhaitez qu'une table possède plusieurs clés étrangères. Par exemple une table table "utilisateur" pourrait avoir une colonne "u_fk_adresse_livraison_id" et une colonne "u_fk_adresse_facturation_id" pour faire référence à la clé primaire d'une table "adresse" contenant des adresses postales.
    Oui c'est possible.

    Voici un exemple de la documentation officielle pour ajouter plusieurs contraintes :
    CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,
                          price DECIMAL,
                          PRIMARY KEY(category, id)) TYPE=INNODB;
    CREATE TABLE customer (id INT NOT NULL,
                          PRIMARY KEY (id)) TYPE=INNODB;
    CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,
                          product_category INT NOT NULL,
                          product_id INT NOT NULL,
                          customer_id INT NOT NULL,
                          PRIMARY KEY(no),
                          INDEX (product_category, product_id),
                          FOREIGN KEY (product_category, product_id)
                            REFERENCES product(category, id)
                            ON UPDATE CASCADE ON DELETE RESTRICT,
                          INDEX (customer_id),
                          FOREIGN KEY (customer_id)
                            REFERENCES customer(id)) TYPE=INNODB;

    Source : http://dev.mysql.com/doc/refman/5.0/fr/innodb-foreign-key-constraints.html

    En espérant que cela vous aide.
    Cordialement,

    Discussions similaires

    cle wifi pour tv

    5 réponses