sql >> Database >  >> RDS >> Mysql

Buitenlandse sleutel die verwijst naar meerdere rijen in een andere tabel

De gebruikelijke oplossing hiervoor zou zijn om een ​​intersectietabel te maken:

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)
);

Je laat dan v_id . vallen van owners .

Met deze tabel kan elke owner om meerdere vehicles te bezitten , en elk vehicle om meerdere owners te hebben . Als u een beperking van één eigenaar per voertuig wilt afdwingen, voegt u een UNIQUE toe index naar vehicles_owned.v_id .

EDIT:Als u een beperking van één eigenaar per voertuig wilt afdwingen, kunt u natuurlijk ook gewoon o_id toevoegen naar vehicles als een externe sleutel, en doe geen moeite met de intersectietabel.




  1. Wat gebeurt er als het kolomtype TIMESTAMP wordt gewijzigd in DATETIME in MySQL?

  2. Python MySQL ReferenceError:object waarnaar zwak wordt verwezen bestaat niet meer

  3. MySQL Integer 0 vs NULL

  4. Nxlog im_dbi werkt niet