phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

много към много дилема за мост на връзката

Инструментът просто ви казва, че може да има няколко записа за комбинация uId-groupId. Пример:

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

Сега си представете, че тези данни ви се показват и правите първите 2/1/30 в 2/1/50. Какво изявление за актуализиране може да изпрати инструментът на dbms?

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

Това ще актуализира три записа вместо един.

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

Това пак ще актуализира два записа вместо един.

Така че, за да актуализирате и изтриете правилно, трябва да кажете на dbms какво прави записите уникални. Има четири възможности:

  • Ако никога не искате да актуализирате или изтривате единични записи, оставете го както е.
  • Ако искате да можете да актуализирате и може да има само един запис за комбинация uId-groupId, тогава кажете на dbms и направете uId плюс groupId първичен ключ на вашата таблица.
  • Ако искате да можете да актуализирате и може да има дубликати за комбинация uId-groupId, но комбинацията uId-groupId-performacesScore винаги ще бъде уникална, тогава направете тези три първичен ключ на таблицата.
  • Ако искате да можете да актуализирате и може да има дубликати за всяка комбинация, дайте на таблицата друга колона за технически идентификатор и направете това първичен ключ.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Как да ограничим достъпа до phpmyadmin?

  2. Актуализирах до MariaDB 10.2.20, за да използвам CTE. Все още получавате неразпознат тип изявление. (близо до WITH) в phpMyAdmin

  3. Защо импортирането на PHPMyAdmin съкращава текстови полета в някои от моите АКТУАЛИЗАЦИИ?

  4. Изтриване на таблици от база данни с PhpMyAdmin

  5. Съставен ключ като външен ключ (sql)