sql >> Database teknologi >  >> RDS >> Mysql

Er der nogen fordel ved at have en auto-incrementing primær nøgle i en MySQL pivot tabel?

Indlæg og kategorier er sandsynligvis mange-til-mange, ikke én-til-mange.

En mange-til-mange relationstabel er bedst at lave sådan noget som

CREATE TABLE a_b (
a_id ... NOT NULL,
b_id ... NOT NULL,
PRIMARY KEY (a_id, b_id),
INDEX(b_id, a_id) -- include this if you need to go both directions
) ENGINE = InnoDB;

Dermed får du automatisk "klyngede" opslag i begge retninger, og du undgår det unødvendige kunstige id til tabellen.

(For øvrigt, N.B., en implicit PK er 6 bytes, ikke 8. Der er et langt indlæg af Jeremy Cole om emnet.)

Et en-til-mange forhold har ikke brug for denne ekstra tabel. Hav i stedet et id inde i den anden tabel. For eksempel vil en by-tabel have id'et for landet i sig.



  1. Fejl under tilføjelse af standby

  2. Hvordan får man alle indlæg med alle kategorier i wordpress gennem mysql?

  3. Find brugere, der ser samme webside eller URL

  4. Filtrerede indekser og INKLUDEREDE kolonner