sql >> Base de Datos >  >> RDS >> Mysql

Relación de uno a muchos en MySQL:¿cómo construir un modelo?

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

Cada Map DEBE tener un Area , como area_id no es nulo (y es una Foreign key en Area )

Pero no podrá (y no es deseable) tener "al menos un mapa" para cada área.

Un día, tendrás que crear un Area . Y no tendrá ningún Map en este momento. O realice comprobaciones "regulares" para ver las áreas sin ningún mapa.

Es posible que desee eliminar un Area , si no tiene más Map relacionado , cuando eliminas un Map .