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

Връзка един към много в MySQL - как да изградим модел?

create table Area(id int primary key auto_increment, name varchar(100));

create table Map(id int primary key auto_increment, 
                 area_id int not null,
                 name varchar(100),
                 foreign key (area_id) references area(id));

SqlFiddle

Всяка Map ТРЯБВА да има Area , като area_id не е нула (и е Foreign key на Area )

Но няма да можете (и не е желателно) да имате „поне една карта“ за всяка област.

Един ден ще трябва да създадете Area . И няма да има никаква Map в този момент. Или правете „редовни“ проверки, за да видите Зоните без никаква карта.

Може да искате да изтриете Area , ако няма повече свързана Map , когато изтриете Map .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи NOT RLIKE в MySQL

  2. MySQL Използвате безопасен режим на актуализиране и сте се опитали да актуализирате таблица без WHERE

  3. Моля, инсталирайте mysql адаптер 'gem install activerecord-mysql-adapter'

  4. PHP Най-добрият начин за кеширане на MySQL резултати?

  5. Използване на PHP SESSION променливи за съхраняване на резултатите от MySQL заявки