簡単な例:顧客のテーブルがあります。
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
to に追加する必要がありCustomers
ますか?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
代わりに画像:破線/ FKを追加する必要がありますか?
編集:テーブルに主キーの定義を追加しました。上記で述べた点について繰り返し述べたいと思います。データベースは、正確性/セキュリティ対策として、基本的に顧客によってサイロ化されています。したがって、すべての主キーにはcustomer
ID が含まれています。