Meerdere nakomelingen in familierelaties in PHP
In de vorige les kon een vader alleen
één zoon hebben. Dit werd bereikt doordat
de vader een relatie son_id had.
Stel dat een vader nu meerdere zonen kan hebben.
In dit geval kunnen we nog steeds
slechts één tabel maken, die met zichzelf
verbonden is. Alleen zullen we in het relatieveld
niet de id van de zoon opslaan, maar de id van de vader. In dit
geval kunnen meerdere gebruikers verwijzen
naar hun vader - en daardoor zal de vader
meerdere zonen hebben:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Een gebruiker samen met zijn vader verkrijgen kan als volgt:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Stel dat we gebruikers hebben. Elke gebruiker heeft een vader en een moeder. Beschrijf de opslagstructuur.
Schrijf een query die een gebruiker ophaalt samen met zijn vader en moeder.