sql >> Databáze >  >> Database Tools >> phpMyAdmin

mnoho k mnoha dilema vztahového mostu

Nástroj vám jednoduše říká, že pro kombinaci uId-groupId může existovat několik položek. Příklad:

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

Nyní si představte, že se vám tato data zobrazí a vy uděláte první 2/1/30 a 2/1/50. Jaké prohlášení o aktualizaci mohl nástroj odeslat dbms?

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

Tím by se aktualizovaly tři záznamy místo jednoho.

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

To by stále aktualizovalo dva záznamy místo jednoho.

Aby bylo možné správně aktualizovat a mazat, musíte dbms sdělit, čím jsou záznamy jedinečné. Existují čtyři možnosti:

  • Pokud nikdy nechcete aktualizovat nebo odstraňovat jednotlivé záznamy, ponechte je tak, jak jsou.
  • Pokud chcete mít možnost aktualizovat a může existovat pouze jeden záznam pro kombinaci uId-groupId, řekněte to dbms a udělejte uId plus groupId primární klíč vaší tabulky.
  • Pokud chcete mít možnost aktualizovat a u kombinace uId-groupId mohou existovat duplikáty, ale kombinace uId-groupId-performacesScore bude vždy jedinečná, nastavte tyto tři jako primární klíč tabulky.
  • Pokud chcete mít možnost aktualizovat a pro libovolnou kombinaci mohou existovat duplikáty, zadejte do tabulky další sloupec pro technické ID a udělejte z něj primární klíč.



  1. phpmyadmin přesunout text z jednoho pole do druhého

  2. Jak automatizovat zálohování databáze pomocí phpmyadmin

  3. WAMPServer phpMyadmin Překročena maximální doba provádění 360 sekund

  4. Chyba při migraci databáze Wordpress na server SQL