Простий приклад: є таблиця клієнтів.
create table Customers (
id integer,
constraint CustomersPK primary key (id)
)
Усі інші дані в базі даних повинні посилатись на а Customer, наприклад, Ordersвиглядає так:
create table Orders (
id integer,
customer integer,
constraint OrdersPK primary key (customer, id),
constraint OrdersFKCustomers foreign key (customer) references Customers (id)
)
Припустимо, зараз існує таблиця, що посилається на 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)
)
Чи слід додати окремий зовнішній ключ від Itemsдо Customers?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
Замість цього зображення: чи слід додати пунктирну лінію / FK?

Редагувати: Я додав визначення таблиць первинного ключа до таблиць. Мені хотілося б повторно зазначити пункт, який я зазначив вище: база даних, в основному, є клієнтом, як міра коректності / безпеки. Тому всі первинні ключі містять customerідентифікатор.


