Mysql
 sql >> база данни >  >> RDS >> Mysql

Един към много MySQL

MySQL не знае, нито трябва да знае дали връзката е 1-1 или 1-много.
Нито един SQL не поддържа много-много релации, всички изискват междинна таблица, която разделя релация много-много на 2 отделете 1-много.

Разликата е в логиката, която контролира връзките, която е в кода, който пишете.
Връзката 1-1 се поддържа, като таблиците споделят един и същ първичен ключ (PK).
С вторична таблица, декларираща този PK като външен ключ, сочещ към другите таблици PK.

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

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

Посоката на връзката 1 -> many срещу many <- 1 се определя от местоположението на полето за връзка.

Обикновено всяка таблица има уникален id и полето за връзка се нарича tablename_id .
Таблицата, в която има полето за връзка, е many страна на връзката, другата таблица е на 1 страна.

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

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

Като поставите полето за връзка в location таблица, вие форсирате нещата, така че местоположението може да има само 1 потребител. Потребителят обаче може да има много местоположения.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да спестите само време без дата в базата данни чрез sql заявка

  2. Програмно актуализиране на поръчките в Woocommerce

  3. актуализиране на няколко реда, използвайки лимит в mysql?

  4. PHP:mysql_connect не връща FALSE

  5. Използвате слоя на база данни на Django извън Django?