Z podanego schematu widzę, że ograniczenie klucza obcego istnieje w tabeli parents_children , co zapewni, że połączenie między rodzicem a dzieckiem może istnieć tylko wtedy, gdy istnieje zarówno rodzic, jak i dziecko.
To jednak nie powstrzymuje Cię przed wstawieniem wpisu do parents , bez towarzyszącego wpisu w parents_children lub o to chodzi children .
Krótko mówiąc, ten schemat pozwala na istnienie rodzica bez dziecka.
Problem z twoją logiką polegałby na tym, że zarówno rodzic, jak i dziecko muszą zostać utworzone przed utworzeniem relacji w parents_children (ze względu na relacje klucza obcego). Jednak dodatkowa logika, której szukasz (bez dziecka, bez rodzica i na odwrót) wymagałaby wszystkich połączeń między rodzicem a dzieckiem, zanim można by utworzyć rodzica lub dziecko.
Widzisz tutaj problem z kurczakiem/jajkiem?