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
DEVE ter uma Area
, como area_id
não é null (e é uma Foreign key
na Area
) Mas você não poderá (e não é desejável) ter "pelo menos um mapa" para cada área.
Um dia, você terá que criar uma
Area
. E não terá nenhum Map
neste momento. Ou faça verificações "regulares" para ver as Áreas sem nenhum Mapa. Você pode querer excluir uma
Area
, se não tiver mais Map
relacionado , quando você exclui um Map
.