sql >> Databasteknik >  >> RDS >> Mysql

Finns det någon fördel med att ha en automatiskt ökande primärnyckel i en MySQL-pivottabell?

Inlägg och kategorier är förmodligen många-till-många, inte en-till-många.

En många-till-många relationstabell är bäst att göra något liknande

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;

Med det får du automatiskt "klustrade" uppslag i båda riktningarna, och du slipper det onödiga konstgjorda ID:t för tabellen.

(Förresten, N.B., en implicit PK är 6 byte, inte 8. Det finns ett långt inlägg av Jeremy Cole om ämnet.)

En en-till-många-relation behöver inte denna extra tabell. Ha istället ett id i den andra tabellen. Till exempel kommer en stadstabell att ha id för landet i sig.



  1. Kinesisk teckenkodning av JSF-ingång

  2. MySQL c# Connection String failover

  3. Skriv om URL, ersätt ID med titel i frågesträngen

  4. Hooks utlöses inte när du infogar råfrågor via sequelize.query()