一个简单的例子:有一张客户表。
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
ID。