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

Jeden do wielu MySQL

MySQL nie wie ani nie musi wiedzieć, czy relacja wynosi 1-1 czy 1 wiele.
Żaden SQL nie obsługuje relacji wiele-wiele, wszystkie wymagają tabeli pośredniej, która dzieli relację wiele-wiele na 2 oddziel 1 wiele.

Różnica polega na logice sterującej relacjami, która znajduje się w napisanym przez Ciebie kodzie.
Relacja 1-1 jest utrzymywana dzięki temu, że tabele mają wspólny klucz podstawowy (PK).
W przypadku tabela dodatkowa deklarująca ten PK jako klucz obcy wskazujący na inne tabele PK.

Table chinese_mother (
id integer primary key,
name....
   

Table chinese_child (
id integer primary key,
name ....
....,
foreign key (id) references chinese_mother.id

Kierunek relacji 1 -> many vs many <- 1 zależy od lokalizacji pola linku.

Zwykle każda tabela ma unikalny id a pole linku nazywa się tablename_id .
Tabela zawierająca pole link to many po stronie relacji, druga tabela znajduje się po stronie 1 z boku.

Table user
id: primary key
name......
.....

Table location
id: primary key
user_id foreign key references (user.id)
x
y
.......

Umieszczając pole linku w location tabeli, wymuszasz, aby lokalizacja mogła mieć tylko 1 użytkownika. Jednak użytkownik może mieć wiele lokalizacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak podpowiedzieć indeks do użycia w kwerendzie wybierającej MySQL?

  2. Jaki jest najlepszy sposób wstawiania i aktualizowania tabeli jednowierszowej w MySQL?

  3. Jak formatować liczby w MySQL

  4. jak ponownie zindeksować tabelę mysql

  5. Jak mogę użyć PDO do pobrania tablicy wyników w PHP?