Esempio semplice: esiste una tabella di clienti.
create table Customers (
id integer,
constraint CustomersPK primary key (id)
)
Tutti gli altri dati nel database devono essere collegati a un Customer
, quindi ad esempio Orders
è simile al seguente:
create table Orders (
id integer,
customer integer,
constraint OrdersPK primary key (customer, id),
constraint OrdersFKCustomers foreign key (customer) references Customers (id)
)
Supponiamo ora che ci sia una tabella che collega a Orders
:
create table Items (
id integer,
customer integer,
order integer,
constraint ItemsPK primary key (customer, id),
constraint ItemsFKOrders foreign key (customer, order) references Orders (customer, id)
)
Devo aggiungere una chiave esterna separata da Items
a Customers
?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
Un'immagine invece: dovrei aggiungere la linea tratteggiata / FK?
Modifica: ho aggiunto le definizioni delle chiavi primarie alle tabelle. Vorrei ripetere il punto che ho esposto sopra: il database è sostanzialmente messo a tacere dai clienti, come misura di correttezza / sicurezza. Pertanto, tutte le chiavi primarie contengono l' customer
ID.