Zwykłym rozwiązaniem tego problemu byłoby utworzenie tabeli przecięcia:
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)
);
Następnie upuszczasz v_id
od owners
.
Ta tabela pozwala każdemu owner
posiadać wiele vehicles
i każdy vehicle
mieć wielu owners
. Jeśli chcesz wymusić ograniczenie jednego właściciela na pojazd, dodaj UNIQUE
indeks do vehicles_owned.v_id
.
EDYCJA:Oczywiście, jeśli chcesz wymusić ograniczenie jednego właściciela na pojazd, możesz również po prostu dodać o_id
do vehicles
jako klucz obcy i nie zawracaj sobie głowy tablicą przecięć.