Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy jest jakaś korzyść z posiadania automatycznego przyrostu klucza podstawowego w tabeli przestawnej MySQL?

Posty i kategorie to prawdopodobnie wiele do wielu, a nie jeden do wielu.

Tablicę relacji wiele-do-wielu najlepiej wykonać w stylu

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;

Dzięki temu automatycznie otrzymujesz „zgrupowane” wyszukiwania w obu kierunkach i unikasz niepotrzebnego sztucznego identyfikatora tabeli.

(Nawiasem mówiąc, niejawny PK to 6 bajtów, a nie 8. Jest długi post Jeremy'ego Cole'a na ten temat.)

Relacja jeden-do-wielu nie wymaga tej dodatkowej tabeli. Zamiast tego miej jeden identyfikator w drugim stole. Na przykład tabela Miasto będzie zawierała identyfikator kraju.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql usuwa starsze duplikaty

  2. Wyciek pamięci w PHP podczas pobierania dużego zbioru danych z MySQL

  3. Czy można uzyskać całkowitą liczbę wierszy z limitem przesunięcia?

  4. Nie można wyświetlić obrazu za pomocą php i mysql

  5. 2 najlepsze rekordy MySQL na grupę