Tôi có mối quan hệ nhiều-nhiều, được triển khai với một bảng kết hợp trong MySQL. Tôi có một bàn cho trẻ em và một bàn cho cha mẹ. Một đứa trẻ có thể có nhiều cha mẹ, được lưu trong bảng liên kết parent_child_link với ID của họ.Cập nhật PHP MYSQL quan hệ nhiều-nhiều-nhiều
Trẻ em có thể được cập nhật thông qua biểu mẫu HTML, cha mẹ có nhiều lựa chọn HTML. Bây giờ tôi cần cập nhật bản ghi trong cơ sở dữ liệu, nhưng giải pháp của tôi không hiệu quả lắm. Dưới đây là trong giả những gì tôi làm:
- Cập nhật các thông tin con nơi child_id = x
- Xóa tất cả các hiệp hội hiện nay ở parent_child_link nơi child_id = x
- Chèn các hiệp hội mới
Giải pháp này hoạt động tốt, nhưng khi cha mẹ không thay đổi, ví dụ chỉ có tên của đứa trẻ đã được thay đổi, sau đó có 2 truy vấn không cần thiết thực hiện. Làm cách nào để tránh những truy vấn không cần thiết này? Có cách nào để kiểm tra xem cha mẹ trong đa lựa chọn có thay đổi không?
ofcourse Tôi chỉ có thể bỏ qua tất cả những rắc rối này, bởi vì nó đã hoạt động, nhưng tôi thực sự muốn giữ mọi thứ hiệu quả nhất có thể.
Đây là một đối một; OP có mối quan hệ nhiều - nhiều với bảng tổng hợp. – lafor
Lafor đúng của bạn, xấu của tôi. –
Tôi rất thích di chuyển nó ra ngoài lớp ứng dụng, nhưng tôi không thấy giải pháp của bạn với các tham chiếu sẽ giải quyết vấn đề của tôi như thế nào. Theo như tôi đã quản lý để phân tích nó, nó sẽ hữu ích khi xóa một đứa trẻ hoặc cha mẹ (để thoát khỏi liên kết). – EsTeGe