Mysql
 sql >> Database >  >> RDS >> Mysql

Chiave esterna che fa riferimento a più righe in un'altra tabella

La solita soluzione a questo sarebbe creare una tabella di intersezione:

CREATE TABLE vehicles_owned
(
  o_id INT,
  v_id INT,
  PRIMARY KEY (o_id, v_id),
  FOREIGN KEY (o_id)
    REFERENCES owners (o_id),
  FOREIGN KEY (v_id)
    REFERENCES vehicles (v_id)
);

Quindi rilascia v_id da owners .

Questa tabella consente a ciascun owner possedere più vehicles e ogni vehicle avere più owners . Se desideri applicare un vincolo di un proprietario per veicolo, aggiungi un UNIQUE indice in vehicles_owned.v_id .

EDIT:Ovviamente, se vuoi imporre un vincolo di un proprietario per veicolo, puoi anche semplicemente aggiungere o_id a vehicles come chiave esterna e non preoccuparti della tabella di intersezione.