Mysql
 sql >> Base de données >  >> RDS >> Mysql

Relation un-à-plusieurs dans MySQL - comment construire un modèle ?

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

Chaque Map DOIT avoir un Area , comme area_id n'est pas nul (et est une Foreign key sur Area )

Mais vous ne pourrez pas (et ce n'est pas souhaité) avoir "au moins une carte" pour chaque zone.

Un jour, vous devrez créer un Area . Et il n'y aura pas de Map à ce moment. Ou effectuez des vérifications "régulières" pour voir les zones sans aucune carte.

Vous voudrez peut-être supprimer un Area , s'il n'y a plus de Map associée , lorsque vous supprimez une Map .