phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

nhiều mối quan hệ tiến thoái lưỡng nan bảng cầu nối

Công cụ chỉ cho bạn biết rằng có thể có một số mục nhập cho tổ hợp uId-groupId. Ví dụ:

uId  groupId  performacesScore 
1    1        10
1    2        20
2    1        30
2    1        30
2    1        40
2    2        20

Bây giờ, hãy tưởng tượng dữ liệu này được hiển thị cho bạn và bạn biến 2/1/30 đầu tiên thành 2/1/50. Công cụ có thể gửi câu lệnh cập nhật nào tới dbms?

update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;

Điều này sẽ cập nhật ba bản ghi thay vì một bản ghi.

update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;

Thao tác này sẽ vẫn cập nhật hai bản ghi thay vì một bản ghi.

Vì vậy, để cập nhật và xóa đúng cách, bạn phải cho dbms biết điều gì làm cho các bản ghi là duy nhất. Có bốn khả năng:

  • Nếu bạn không bao giờ muốn cập nhật hoặc xóa các bản ghi đơn lẻ, hãy để nguyên bản ghi đó.
  • Nếu bạn muốn có thể cập nhật và chỉ có thể có một mục nhập cho tổ hợp uId-groupId, thì hãy thông báo cho dbms như vậy và đặt uId plus groupId làm khóa chính của bảng của bạn.
  • Nếu bạn muốn cập nhật và có thể có các bản sao cho kết hợp uId-groupId, nhưng kết hợp uId-groupId-performanceacesScore sẽ luôn là duy nhất, thì hãy đặt ba thứ này làm khóa chính của bảng.
  • Nếu bạn muốn cập nhật và có thể có các bản sao cho bất kỳ kết hợp nào, hãy cung cấp cho bảng một cột khác cho id kỹ thuật và đặt đây là khóa chính.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Đặt mật khẩu cho người dùng trong PhpMyAdmin trong Wamp

  2. Sự cố với liên kết cơ sở dữ liệu trên giao diện phpmyadmin

  3. phpMyAdmin Không thể tải hoặc lưu cấu hình

  4. phpmyadmin từ xa không thể đăng nhập nhưng ứng dụng khách mysql có thể

  5. Sửa đổi các trường trong bảng cơ sở dữ liệu với PhpMyAdmin