Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Relacionamento um-para-muitos no MySQL - como construir o 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 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 .