Bạn không thể giải quyết vấn đề này với thiết kế hiện tại của mình mà không xen kẽ một số logic ở cấp kích hoạt hoặc cấp ứng dụng. FOREIGN KEY
s không thể tham chiếu nhiều hơn một bảng (Tôi hiểu thiết kế của bạn để sử dụng một bảng cho mỗi nhóm sản phẩm, nếu tôi sai, vui lòng cho tôi biết). Ngoài ra, chúng không thể chứa bất kỳ logic có điều kiện nào, vì vậy ngay cả khi bạn có một product_groups
duy nhất bảng bạn không thể tạo FOREIGN KEY
điều đó chỉ cho phép các bản ghi G1 và G2 từ bảng đó.
Để thực hiện điều này với các ràng buộc toàn vẹn quan hệ tiêu chuẩn, bạn sẽ cần một bảng bổ sung có tên là approvable_products
sẽ chứa product_ids
những sản phẩm thuộc nhóm một hoặc nhóm hai.