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

veel op veel relatie bridge tafel dilemma

De tool vertelt je gewoon dat er meerdere vermeldingen kunnen zijn voor een uId-groupId-combinatie. Voorbeeld:

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

Stel je nu voor dat deze gegevens aan je worden getoond en dat je van de eerste 1/1/30 een 2/1/50 maakt. Welke update-instructie kan de tool naar de dbms sturen?

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

Dit zou drie records bijwerken in plaats van één.

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

Dit zou nog steeds twee records bijwerken in plaats van één.

Dus om op de juiste manier bij te werken en te verwijderen, moet u de dbms vertellen wat de records uniek maakt. Er zijn vier mogelijkheden:

  • Als u nooit afzonderlijke records wilt bijwerken of verwijderen, laat het dan zoals het is.
  • Als je wilt kunnen updaten en er kan maar één item zijn voor een uId-groupId-combinatie, vertel dat dan aan de dbms en maak van uId plus groupId de primaire sleutel van je tabel.
  • Als je wilt kunnen updaten en er kunnen duplicaten zijn voor een uId-groupId-combinatie, maar een uId-groupId-performacesScore-combinatie zal altijd uniek zijn, maak dan van deze drie de primaire sleutel van de tabel.
  • Als je wilt kunnen updaten en er kunnen duplicaten zijn voor elke combinatie, geef de tabel dan een andere kolom voor een technische id en maak dit de primaire sleutel.



  1. Hoe kan ik de export van een mySQL-database automatiseren met phpMyAdmin

  2. Alle exemplaren van een tekenreeks vervangen door waarden uit een array

  3. MySQL Workbench> Plugins> Hulpprogramma's> SQL-query opnieuw formatteren

  4. WAMPServer phpMyadmin Maximale uitvoeringstijd van 360 seconden overschreden