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

Autoinkrementacja MySQL między tabelami

Wygląda na to, że chcesz rozróżnić kategorie i tematy w dwóch osobnych tabelach, ale mieć identyfikatory obu z nich w innej tabeli likes aby ułatwić użytkownikom lubiącym kategorię lub temat.

To, co możesz zrobić, to utworzyć tabelę nadrzędnych jednostek z podtypami categories i topics . Automatycznie zwiększany klucz byłby generowany w tabeli nadrzędnej i wstawiany tylko do jednej z dwóch tabel podtypów (w zależności od tego, czy jest to kategoria, czy temat).

Tabele podtypów odwołują się do tego superelementu poprzez pole z automatycznym przyrostem w relacji 1:1.

W ten sposób możesz po prostu połączyć tabelę superelementów z likes tabela oparta tylko na jednej kolumnie (która może reprezentować kategorię lub temat) i nie ma id w tabelach podtypów będą obecne w obu.

Oto uproszczony przykład tego, jak możesz to wymodelować:

Ten model umożliwiłby utrzymanie relacji między kategoriami i tematami, ale uogólnienie obu encji w superentity tabela.

Kolejną zaletą tego modelu jest możliwość wyodrębnienia wspólnych pól z tabel podtypów do tabeli nadrzędności. Powiedz na przykład, że categories i topics oba zawierały pola title i url :możesz umieścić te pola w superentity tabeli, ponieważ są one wspólnymi atrybutami jej podtypów. W tabelach podtypów umieszczaj tylko pola, które są specyficzne dla tabel podtypów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalujesz PostGresQL i MySQL w Mac OS X z systemem MAMP?

  2. Wybierz wszystkie daty między dwiema datami bez użycia tabeli (wygeneruj listę dat)

  3. Dlaczego wynikiem `select 'a'=0;` jest 1?

  4. Odmowa dostępu dla użytkownika 'root'@'localhost' (przy użyciu hasła:Tak) po zresetowaniu hasła LINUX

  5. MySQL:Pobieranie kolumn według priorytetów wartości