Ejemplo simple: hay una mesa de clientes.
create table Customers (
id integer,
constraint CustomersPK primary key (id)
)
Todos los demás datos en la base de datos deben vincularse a a Customer
, por ejemplo, se Orders
ve así:
create table Orders (
id integer,
customer integer,
constraint OrdersPK primary key (customer, id),
constraint OrdersFKCustomers foreign key (customer) references Customers (id)
)
Supongamos que ahora hay una tabla que vincula a 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)
)
¿Debo agregar una clave externa separada de Items
a Customers
?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
Una imagen en su lugar: ¿debo agregar la línea discontinua / FK?
Editar: he agregado definiciones de clave principal a las tablas. Me gustaría volver a repetir el punto que mencioné anteriormente: la base de datos está básicamente aislada por los clientes, como una medida de corrección / seguridad. Por lo tanto, todas las claves primarias contienen la customer
ID.