phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

dylemat tabeli mostów relacji wiele do wielu

Narzędzie po prostu informuje, że może istnieć kilka wpisów dla kombinacji uId-groupId. Przykład:

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

Teraz wyobraź sobie, że te dane są ci pokazywane, a pierwsze 2/1/30 to 2/1/50. Jaką instrukcję aktualizacji może wysłać narzędzie do dbms?

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

Spowoduje to zaktualizowanie trzech rekordów zamiast jednego.

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

To nadal aktualizuje dwa rekordy zamiast jednego.

Aby więc poprawnie aktualizować i usuwać, musisz powiedzieć dbms, co sprawia, że ​​rekordy są unikalne. Istnieją cztery możliwości:

  • Jeśli nigdy nie chcesz aktualizować ani usuwać pojedynczych rekordów, pozostaw to bez zmian.
  • Jeśli chcesz mieć możliwość aktualizacji i może istnieć tylko jeden wpis dla kombinacji uId-groupId, poinformuj o tym dbms i ustaw uId plus groupId jako klucz podstawowy swojej tabeli.
  • Jeśli chcesz mieć możliwość aktualizacji i mogą istnieć duplikaty dla kombinacji uId-groupId, ale kombinacja uId-groupId-performacesScore zawsze będzie unikalna, wtedy ustaw te trzy klucze jako klucz podstawowy tabeli.
  • Jeśli chcesz mieć możliwość aktualizacji i mogą występować duplikaty dla dowolnej kombinacji, daj tabeli inną kolumnę na identyfikator techniczny i ustaw go jako klucz podstawowy.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. phpMyAdmin Błąd w przetwarzaniu żądania Kod błędu:500 Tekst błędu:Wewnętrzny błąd serwera

  2. Nie można rozpocząć sesji bez błędów w phpMyAdmin

  3. Czy możesz dostosować komunikat o błędzie duplikatu mysql_error?

  4. Gdzie phpMyAdmin przechowuje hasło użytkownika phpMyAdmin?

  5. Utwórz diagram bazy danych w phpMyAdmin