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