Mysql
 sql >> Database >  >> RDS >> Mysql

Relazione uno-a-molti in MySQL:come creare un modello?

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

Ogni Map DEVE avere un Area , come area_id non è nullo (ed è una Foreign key su Area )

Ma non potrai (e non è auspicabile) avere "almeno una mappa" per ogni zona.

Un giorno dovrai creare una Area . E non avrà alcuna Map in questo momento. Oppure effettua controlli "regolari" per vedere le Aree senza alcuna mappa.

Potresti voler eliminare una Area , se non ha più una Map correlata , quando elimini una Map .