Anda tidak dapat memecahkan masalah ini dengan desain Anda saat ini tanpa memasukkan beberapa logika baik di tingkat pemicu atau aplikasi. FOREIGN KEY
s tidak dapat mereferensikan lebih dari satu tabel (saya mengerti desain Anda untuk menggunakan satu tabel per grup produk, jika saya salah, beri tahu saya). Selain itu, mereka tidak dapat berisi logika kondisional apa pun, jadi meskipun Anda memiliki satu product_groups
tabel Anda tidak dapat membuat FOREIGN KEY
yang hanya mengizinkan catatan G1 dan G2 dari tabel itu.
Untuk mencapai ini dengan batasan integritas relasional standar, Anda memerlukan tabel tambahan yang disebut sesuatu seperti approvable_products
yang akan berisi product_ids
dari produk-produk yang ada di grup satu atau grup dua.