Pada struktur database saya di SQL Server, saya memiliki 3 jenis produk yang memerlukan informasi berbeda tentang pesanan. Jadi, saya membuat satu Customersmeja dan tiga perintah tabel yang berbeda: OrdersForProductAs, OrdersForProductBs, OrdersForProductCs. Semua tabel pesanan memiliki satu hingga banyak hubungan di atas Customersmeja.
Saya juga punya meja lain yaitu Paymentsdan akan menyimpan rincian pembayaran di dalamnya. Tapi saya ragu di sini tentang cara menyusunnya.
Karena saya memiliki beberapa jenis produk dan pelanggan mungkin memiliki pesanan untuk beberapa produk secara bersamaan, saya perlu menghubungkan ketiga tabel pesanan ke Paymentstabel.
Masalah lainnya adalah bahwa pelanggan mungkin memiliki pesanan hanya untuk satu jenis produk. Jadi, kolom FK pada Paymentstabel perlu nullable.
Pertanyaan saya adalah apakah nullablekolom-kolom FK itu akan menjadi sakit kepala bagi saya dalam jangka panjang atau tidak? Secara umum, akankah dianggap sebagai praktik yang buruk untuk memiliki kolom FK yang dapat dibatalkan pada tabel?