Простой пример: есть таблица клиентов.
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идентификатор.


