Dvojna povezava z eno tabelo v PHP

Recimo, da imamo mesta:

cities
id name
1 city1
2 city2
3 city3

Recimo, da imamo poti med mesti, pri čemer ima vsaka pot začetno mesto in končno mesto:

routes
id name from_city_id to_city_id
1 route1 1 2
2 route2 2 3

Recimo, da želimo dobiti poti skupaj z mesti. Težava tukaj je v tem, da ima vsaka pot dve mesti: začetek in konec.

Izkazalo se je, da je treba tabelo z mesti združiti dvakrat. Pri vsakem združevanju bo treba tabelo preimenovati:

sqlSELECT
  from_cities.name as from_city_name,
  to_cities.name as to_city_name
FROM
  routes
LEFT JOIN cities as from_cities
  ON from_cities.id=routes.from_city_id
LEFT JOIN cities as to_cities
  ON to_cities.id=routes.to_city_id
Задание 1

Recimo, da imamo uporabnike. Vsak uporabnik ima očeta in mater. Opišite strukturo shranjevanja.