Πολλαπλά παιδιά σε οικογενειακές σχέσεις στην PHP
Στο προηγούμενο μάθημα ο πατέρας μπορούσε να έχει μόνο
έναν γιο. Αυτό επιτυγχανόταν λόγω του ότι
ο πατέρας είχε σύνδεση son_id.
Ας υποθέσουμε τώρα ότι ο πατέρας μπορεί να έχει πολλούς γιους.
Σε αυτήν την περίπτωση μπορούμε ακόμα να φτιάξουμε
μόνο έναν πίνακα, ο οποίος θα συνδέεται
με τον εαυτό του. Μόνο στο πεδίο σύνδεσης θα αποθηκεύουμε
όχι το id του γιου, αλλά το id του πατέρα. Σε αυτήν
την περίπτωση πολλοί χρήστες θα μπορούν να αναφερθούν
στον πατέρα τους - και έτσι ο πατέρας θα έχει
πολλούς γιους:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Ο χρήστης μαζί με τον πατέρα του μπορεί να ληφθεί ως ακολούθως:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Ας υποθέσουμε ότι έχουμε χρήστες. Κάθε χρήστης έχει πατέρα και μητέρα. Περιγράψτε τη δομή αποθήκευσης.
Γράψτε ένα ερώτημα που θα ανακτήσει τον χρήστη μαζί με τον πατέρα και τη μητέρα του.