Trên cấu trúc cơ sở dữ liệu của tôi trong SQL Server, tôi có 3 loại sản phẩm yêu cầu thông tin khác nhau về đơn hàng. Vì vậy, tôi đã tạo ra một Customers
bảng và ba đơn đặt hàng các bảng khác nhau: OrdersForProductAs
, OrdersForProductBs
, OrdersForProductCs
. Tất cả các bảng đơn đặt hàng có một đến nhiều mối quan hệ trên Customers
bàn.
Tôi cũng có một bảng khác đang Payments
và sẽ giữ các chi tiết thanh toán bên trong. Nhưng tôi có nghi ngờ ở đây về cách cấu trúc nó.
Vì tôi có nhiều loại sản phẩm và một khách hàng có thể có đơn đặt hàng cho nhiều sản phẩm cùng một lúc, tôi cần liên kết ba bảng đơn hàng đó với Payments
bảng.
Vấn đề khác là khách hàng có thể chỉ có một đơn đặt hàng cho một loại sản phẩm. Vì vậy, các cột FK trên Payments
bảng cần phải có nullable
.
Câu hỏi của tôi là liệu những nullable
cột FK đó có làm tôi đau đầu về lâu dài hay không? Nói chung, nó có được coi là một thực tiễn xấu khi có các cột FK không thể bỏ qua trên một bảng không?