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

En-til-mange-relation i MySQL - hvordan bygger man model?

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

Hvert Kort SKAL have et Area , som area_id er ikke null (og er en fremmednøgleOmråde )

Men du vil ikke være i stand til (og det er ikke ønsket) at have "mindst ét ​​kort" for hvert område.

En dag bliver du nødt til at oprette et Area . Og den vil ikke have noget Kort på dette tidspunkt. Eller lav "regelmæssig" kontrol for at se områderne uden noget kort.

Du ønsker måske at slette et Område , hvis det ikke har mere relateret Kort , når du sletter et Kort .



  1. Sådan opretter du en CHECK-begrænsning i SQL Server (T-SQL-eksempler)

  2. Dato/tidsstempel for at registrere, hvornår en post blev tilføjet til tabellen?

  3. SQL - Find hele ord i tekst

  4. Hvorfor fejler forespørgslen ikke med en ikke-eksisterende kolonne i underforespørgsel?