Exemple simple: il y a une table des clients.
create table Customers (
id integer,
constraint CustomersPK primary key (id)
)
Toutes les autres données de la base de données doivent être liées à un Customer
, par exemple, cela Orders
ressemble à ceci:
create table Orders (
id integer,
customer integer,
constraint OrdersPK primary key (customer, id),
constraint OrdersFKCustomers foreign key (customer) references Customers (id)
)
Supposons maintenant qu'il existe une table reliant 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)
)
Dois-je ajouter une clé étrangère distincte de Items
à Customers
?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
Une image à la place: dois-je ajouter la ligne pointillée / FK?
Modifier: j'ai ajouté des définitions de clé primaire aux tables. Je voudrais réitérer sur le point que j'ai soulevé ci-dessus: la base de données est essentiellement cloisonnée par les clients, en tant que mesure d'exactitude / sécurité. Par conséquent, toutes les clés primaires contiennent l' customer
ID.