ในโครงสร้างฐานข้อมูลของฉันใน SQL Server ฉันมีผลิตภัณฑ์ 3 ประเภทที่ต้องการข้อมูลที่แตกต่างกันเกี่ยวกับการสั่งซื้อ ดังนั้นฉันสร้างหนึ่งของตารางและสามตารางการสั่งซื้อที่แตกต่างกัน:Customers
, , ตารางคำสั่งซื้อทั้งหมดมีความสัมพันธ์แบบหนึ่งต่อหลายบนโต๊ะOrdersForProductAs
OrdersForProductBs
OrdersForProductCs
Customers
ฉันยังมีตารางอื่นที่Payments
จะเก็บรายละเอียดการชำระเงินไว้ข้างใน แต่ฉันมีข้อสงสัยเกี่ยวกับวิธีการจัดโครงสร้างที่นี่
เนื่องจากฉันมีผลิตภัณฑ์หลายประเภทและลูกค้าอาจมีคำสั่งซื้อหลายผลิตภัณฑ์ในเวลาเดียวกันฉันจึงต้องเชื่อมโยงตารางคำสั่งซื้อทั้งสามนั้นเข้ากับPayments
ตาราง
ปัญหาอื่นคือลูกค้าอาจมีคำสั่งซื้อผลิตภัณฑ์เพียงประเภทเดียว ดังนั้นคอลัมน์ FK ในตารางจะต้องมีการPayments
nullable
คำถามของฉันคือว่าnullable
คอลัมน์ FK เหล่านั้นจะปวดหัวสำหรับฉันในระยะยาวหรือไม่? โดยทั่วไปแล้วจะถือว่าเป็นการปฏิบัติที่ไม่ดีที่จะมีคอลัมน์ FK ที่ไม่มีค่าว่างบนตารางหรือไม่