sql >> Databáze >  >> RDS >> Mysql

Je možné více cizích klíčů v jednom poli?

To, co obvykle uděláte, je nastavit vztah mnoho k mnoha pomocí mezilehlé propojovací tabulky. Něco jako následující:

CREATE TABLE product (
  `id` integer AUTO_INCREMENT NOT NULL,
  -- other cols --
  PRIMARY KEY (`id`)
);

CREATE TABLE certification (
  `id` integer AUTO_INCREMENT NOT NULL,
  -- other cols --
  PRIMARY KEY (`id`)
);

CREATE TABLE product_certification (
   `product_id` integer NOT NULL,
   `certification_id` integer NOT NULL,
   PRIMARY KEY (`product_id`, `certification_id`),
   CONSTRAINT `product_id_product_id` 
     FOREIGN KEY (`product_id`) 
     REFERENCES `product` (`id`) ON DELETE CASCADE,
   CONSTRAINT `certification_id_certification_id` 
     FOREIGN KEY (`certification_id`) 
     REFERENCES `certification` (`id`) ON DELETE CASCADE
);


  1. Zadávání dat z formuláře do databáze PDO

  2. Jak v PHP s PDO zkontrolovat finální parametrizovaný dotaz SQL?

  3. nelze změnit tabulku, tabulka 'xxx/#sql-ib265' již existuje

  4. mysql2sqlite.sh Auto_Increment