Mysql
 sql >> Datenbank >  >> RDS >> Mysql

One-to-Many-Beziehung in MySQL - wie erstellt man ein Modell?

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

Jede Map MUSS einen Area haben , als area_id ist nicht null (und ist ein Foreign key). auf Area )

Aber Sie werden nicht in der Lage sein (und es ist auch nicht erwünscht), "mindestens eine Karte" für jedes Gebiet zu haben.

Eines Tages müssen Sie ein Area erstellen . Und es wird keine Map haben zu diesem Zeitpunkt.Oder machen Sie "normale" Überprüfungen, um die Gebiete ohne Karte zu sehen.

Vielleicht möchten Sie einen Area löschen , wenn es keine zugehörige Map mehr hat , wenn Sie eine Map löschen .