sql >> Databáze >  >> RDS >> Mysql

Je nějaká výhoda mít automaticky se zvyšující primární klíč v kontingenční tabulce MySQL?

Příspěvky a kategorie jsou pravděpodobně many-to-many, ne one-to-many.

Tabulka vztahů mnoho k mnoha je nejlepší udělat něco jako

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;

Díky tomu automaticky získáte „shluková“ vyhledávání v obou směrech a vyhnete se zbytečnému umělému id pro tabulku.

(Mimochodem, N.B., implicitní PK má 6 bajtů, ne 8. Na toto téma je dlouhý příspěvek od Jeremyho Colea.)

Vztah jeden k mnoha tuto tabulku navíc nepotřebuje. Místo toho mějte jedno ID uvnitř druhé tabulky. Například tabulka Město bude obsahovat ID země.



  1. Hibernate hbm2ddl.auto Výchozí hodnota

  2. iOS – Správné formátování časových razítek mezi mySQL (apache) a iOS (NSDate)

  3. Přidání tlačítka pro smazání v PHP na každý řádek tabulky MySQL

  4. Pomocí Count zjistíte počet výskytů