Pada struktur database saya di SQL Server, saya memiliki 3 jenis produk yang memerlukan informasi berbeda tentang pesanan. Jadi, saya membuat satu Customers
meja dan tiga perintah tabel yang berbeda: OrdersForProductAs
, OrdersForProductBs
, OrdersForProductCs
. Semua tabel pesanan memiliki satu hingga banyak hubungan di atas Customers
meja.
Saya juga punya meja lain yaitu Payments
dan 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 Payments
tabel.
Masalah lainnya adalah bahwa pelanggan mungkin memiliki pesanan hanya untuk satu jenis produk. Jadi, kolom FK pada Payments
tabel perlu nullable
.
Pertanyaan saya adalah apakah nullable
kolom-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?