Ví dụ đơn giản: có một bảng khách hàng.
create table Customers (
id integer,
constraint CustomersPK primary key (id)
)
Tất cả các dữ liệu khác trong cơ sở dữ liệu nên liên kết đến a Customer
, vì vậy, ví dụ Orders
như thế này:
create table Orders (
id integer,
customer integer,
constraint OrdersPK primary key (customer, id),
constraint OrdersFKCustomers foreign key (customer) references Customers (id)
)
Giả sử bây giờ có một bảng liên kết đến 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)
)
Tôi có nên thêm một khóa ngoại riêng biệt từ Items
đến Customers
?
...
constraint ItemsFKCustomers foreign key (customer) references Customers (id)
Thay vào đó, một hình ảnh: tôi có nên thêm đường nét đứt / FK không?
Chỉnh sửa: Tôi đã thêm các định nghĩa khóa chính vào các bảng. Tôi muốn nhắc lại ở điểm tôi đã nêu ở trên: cơ sở dữ liệu về cơ bản bị khách hàng bỏ qua, như một biện pháp chính xác / bảo mật. Do đó, tất cả các khóa chính đều chứa customer
ID.