sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

mange til mange forhold brobordsdilemma

Værktøjet fortæller dig blot, at der kan være flere poster for en uId-groupId kombination. Eksempel:

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

Forestil dig nu, at disse data vises til dig, og du gør den første 2/1/30 til en 2/1/50. Hvilken opdateringserklæring kunne værktøjet sende til dbms?

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

Dette ville opdatere tre poster i stedet for én.

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

Dette ville stadig opdatere to poster i stedet for én.

Så for at kunne opdatere og slette korrekt, skal du fortælle dbms'en, hvad der gør posterne unikke. Der er fire muligheder:

  • Hvis du aldrig vil opdatere eller slette enkelte poster, så lad det være som det er.
  • Hvis du vil være i stand til at opdatere, og der kun kan være én indgang for en uId-groupId-kombination, så fortæl dbms det og gør uId plus groupId til den primære nøgle i din tabel.
  • Hvis du ønsker at kunne opdatere, og der kan være dubletter for en uId-groupId-kombination, men en uId-groupId-performacesScore-kombination vil altid være unik, så gør disse tre til tabellens primære nøgle.
  • Hvis du vil være i stand til at opdatere, og der kan være dubletter for enhver kombination, så giv tabellen endnu en kolonne for et teknisk id og gør dette til den primære nøgle.



  1. Hvordan bruger man centrale kolonner i phpmyadmin?

  2. Nem administration af AWS S3-filer

  3. Sådan oprettes forbindelse til fjerndatabase via SSH-tunnel i pgAdmin4 og DBeaver

  4. Importer stor csv-fil ved hjælp af phpMyAdmin