sql >> Databasteknik >  >> RDS >> Mysql

En-till-många-relation i MySQL - hur bygger man en 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

Varje Map MÅSTE ha ett Area , som area_id är inte null (och är en Foreign keyArea )

Men du kommer inte att kunna (och det är inte önskvärt) att ha "minst en karta" för varje område.

En dag måste du skapa ett Area . Och den kommer inte att ha någon Map vid denna tidpunkt. Eller gör "vanliga" kontroller för att se områdena utan någon karta.

Du kanske vill ta bort ett Area , om den inte har någon mer relaterad Map , när du tar bort en Map .



  1. Hur kan jag kontrollera om mysql-tabellkolumnen ens existerar?

  2. Byt ut en partition i SQL Server (T-SQL)

  3. Vanliga tabelluttryck:När och hur man använder dem

  4. Ladda data i filens standardvärde infogas inte i tabellen