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
Jeder Map
muss ein Area
haben, als area_id
nicht null ist (und ist ein Foreign key
auf Area
)
Aber Sie werden nicht in der Lage sein (und es ist nicht erwünscht) zu habe für jeden Bereich "mindestens eine Karte".
Eines Tages müssen Sie ein Area
erstellen. Und es wird zu dieser Zeit keine Map
haben. Oder machen Sie "regelmäßige" Überprüfungen, um die Bereiche ohne Karte zu sehen.
Sie können ein Area
löschen, wenn es keine verwandten Map
mehr hat, wenn Sie eine Map
löschen.
Meiner Meinung nach ist die Trigger-Lösung, die danach eingestellt wird, am besten geeignet. Danke für deine Antwort! – tellob