Πίνακες:
1. άτομα
- id (int, πρωτεύον κλειδί) :Μοναδικό αναγνωριστικό για κάθε άτομο.
- first_name (varchar) :Όνομα του ατόμου.
- last_name (varchar) :Επώνυμο του ατόμου.
- birth_date (ημερομηνία) :Ημερομηνία γέννησης.
- death_date (ημερομηνία) :Ημερομηνία θανάτου (μηδενική).
- Φύλο (enum) :Φύλο (π.χ., «αρσενικό», «θηλυκό», «άλλο»).
- Σημειώσεις (κείμενο) :Πρόσθετες σημειώσεις ή πληροφορίες σχετικά με το άτομο.
2. Σχέσεις
- id (int, πρωτεύον κλειδί) :Μοναδικό αναγνωριστικό για κάθε σχέση.
- person_id (int) :Ξένο κλειδί που αναφέρεται στον πίνακα «λαών» (γονέας).
- insurection_person_id (int) :Ξένο κλειδί που αναφέρεται στον πίνακα «Λαών» (παιδί).
- σχέση_TYPE (enum) :Τύπος σχέσης (π.χ., «γονέας», «παιδί», «σύζυγος», «αδελφός»).
- Παραγγελία (int) :Προαιρετικό πεδίο για την παρακολούθηση της σειράς των παιδιών (για πολλά παιδιά των ίδιων γονέων).
3. Μέσα
- id (int, πρωτεύον κλειδί) :Μοναδικό αναγνωριστικό για κάθε μέρος.
- Όνομα (varchar) :Όνομα του τόπου (π.χ. πόλη, πόλη, χώρα).
- Τύπος (enum) :Τύπος τόπου (π.χ., «πόλη», «χώρα», «κράτος»).
4. Συμβάντα
- id (int, πρωτεύον κλειδί) :Μοναδικό αναγνωριστικό για κάθε συμβάν.
- person_id (int) :Ξένο κλειδί που αναφέρεται στο τραπέζι «λαϊκών».
- event_type (enum) :Τύπος συμβάντος (π.χ., «γέννηση», «γάμος», «θάνατος»).
- event_date (ημερομηνία) :Ημερομηνία της εκδήλωσης.
- place_id (int) :Ξένο κλειδί που αναφέρεται στον πίνακα "Places".
- Σημειώσεις (κείμενο) :Πρόσθετες σημειώσεις σχετικά με το συμβάν.
Επεξήγηση:
* Πίνακας ανθρώπων: Ο πίνακας πυρήνα, κρατώντας βασικές πληροφορίες για κάθε άτομο στο οικογενειακό δέντρο.
* Πίνακας σχέσεων: Ορίζει τον τρόπο σύνδεσης των ανθρώπων. Αυτός ο πίνακας σάς επιτρέπει να μοντελοποιείτε σύνθετες οικογενειακές δομές (π.χ. βήμα-γονείς, υιοθετημένα παιδιά κ.λπ.)
* Πίνακας θέσεων: Παρέχει πληροφορίες σχετικά με τις τοποθεσίες που σχετίζονται με ανθρώπους και γεγονότα (π.χ., γεννήσεις, θέσεις θανάτου).
* Πίνακας συμβάντων: Καταγράφει σημαντικά γεγονότα στη ζωή ενός ατόμου, όπως η γέννηση, ο γάμος και ο θάνατος.
Πλεονεκτήματα αυτής της δομής:
* ευέλικτο: Η βάση δεδομένων μπορεί να φιλοξενήσει διάφορες οικογενειακές δομές και σχέσεις.
* κλιμακωτά: Εύκολο να προσθέσετε νέα άτομα και γεγονότα καθώς το οικογενειακό δέντρο μεγαλώνει.
* Κανονικοποιημένη: Μειώνει την απόλυση των δεδομένων και βελτιώνει την αποτελεσματικότητα.
Σκέψεις:
* Τύποι δεδομένων: Επιλέξτε κατάλληλους τύπους δεδομένων για κάθε στήλη (π.χ., `int`,` varchar ', `date`,` enum').
* Σχέσεις: Βεβαιωθείτε ότι οι σχέσεις εφαρμόζονται σωστά χρησιμοποιώντας ξένα κλειδιά.
* Κανονικοποίηση: Εξετάστε περαιτέρω την ομαλοποίηση (π.χ. δημιουργία ξεχωριστών πινάκων για διευθύνσεις, επαγγέλματα) για μεγάλες βάσεις δεδομένων.
* καταχώρηση δεδομένων: Αναπτύξτε μια φιλική προς το χρήστη διεπαφή για την εισαγωγή δεδομένων στη βάση δεδομένων.
* Οπτικοποίηση: Χρησιμοποιήστε εργαλεία (π.χ. βιβλιοθήκες γραφικών) για να απεικονίσετε το οικογενειακό δέντρο από τη βάση δεδομένων.
Παράδειγμα ερωτήματα:
* Καταγράψτε όλα τα παιδιά ενός συγκεκριμένου ατόμου:
`` sql
Επιλέξτε p.first_name, p.last_name
Από τους ανθρώπους P
Συμμετοχή σε σχέσεις r σε p.id =r.related_person_id
Όπου r.person_id =
Και r.relationship_type ='παιδί';
`` `
* Βρείτε όλους τους ανθρώπους που γεννήθηκαν σε μια συγκεκριμένη πόλη:
`` sql
Επιλέξτε p.first_name, p.last_name
Από τους ανθρώπους P
Συμμετοχή σε εκδηλώσεις E στο P.id =e.person_id
Συμμετέχετε σε μέρη PL στο e.place_id =pl.id
Όπου e.event_type ='γέννηση'
Και pl.name ='Νέα Υόρκη';
`` `
Σημείωση: Αυτό είναι ένα βασικό πλαίσιο. Μπορεί να χρειαστεί να προσθέσετε ή να τροποποιήσετε τους πίνακες με βάση τις συγκεκριμένες απαιτήσεις σας και την πολυπλοκότητα του οικογενειακού σας δέντρου.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα