Πολλαπλά παιδιά στις οικογενειακές σχέσεις στην Python
Στο προηγούμενο μάθημα ο πατέρας μπορούσε να έχει μόνο
έναν γιο. Αυτό επιτυγχανόταν λόγω του ότι
ο πατέρας είχε σύνδεση 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
Ας υποθέσουμε ότι έχουμε χρήστες. Κάθε χρήστης έχει πατέρα και μητέρα. Περιγράψτε τη δομή αποθήκευσης.
Γράψτε ένα ερώτημα που θα ανακτήσει τον χρήστη μαζί με τον πατέρα και τη μητέρα του.