Basit örnek: bir müşteri tablosu var.
create table Customers (
id integer,
constraint CustomersPK primary key (id)
)
Veritabanındaki diğer tüm veriler a bağlantılıdır Customer
, bu nedenle örneğin Orders
şöyle görünür:
create table Orders (
id integer,
customer integer,
constraint OrdersPK primary key (customer, id),
constraint OrdersFKCustomers foreign key (customer) references Customers (id)
)
Şimdi aşağıdakilere bağlantı veren bir tablo olduğunu varsayalım 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)
)
Ben ayrı bir yabancı anahtar eklemek gerekir Items
için Customers
?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
Bunun yerine bir resim: kesikli çizgi / FK mı eklemeliyim?
Düzenleme: Tablolara birincil anahtar tanımları ekledim. Yukarıda yaptığım noktada tekrarlamak istiyorum: veritabanı, doğruluk / güvenlik önlemi olarak müşteriler tarafından temelde silindi. Bu nedenle, tüm birincil anahtarlar customer
kimliği içerir .