Voici une structure de base de données pour suivre un arbre généalogique, ainsi que des explications et des considérations:
Tables:
1. People
- id (int, clé primaire) :Identifiant unique pour chaque personne.
- first_name (varchar) :Prénom de la personne.
- last_name (varchar) :Nom de famille de la personne.
- naissance_date (date) :Date de naissance.
- death_date (date) :Date de décès (nullable).
- genre (enum) :Genre (par exemple, «masculin», «femelle», «autre»).
- notes (texte) :Notes ou informations supplémentaires sur la personne.
2. Relations
- id (int, clé primaire) :Identifiant unique pour chaque relation.
- person_id (int) :Clé étrangère faisant référence au tableau des «personnes» (parent).
- liked_person_id (int) :Clé étrangère faisant référence au tableau des «personnes» (enfant).
- relation_type (enum) :Type de relation (par exemple, «parent», «enfant», «conjoint», «frère»).
- ordre (int) :Champ facultatif pour suivre l'ordre des enfants (pour plusieurs enfants des mêmes parents).
3. lieux
- id (int, clé primaire) :Identifiant unique pour chaque endroit.
- nom (varchar) :Nom de l'endroit (par exemple, ville, ville, pays).
- Type (enum) :Type de lieu (par exemple, «ville», «pays», «État»).
4. Événements
- id (int, clé primaire) :Identifiant unique pour chaque événement.
- person_id (int) :Clé étrangère faisant référence au tableau des «personnes».
- event_type (enum) :Type d'événement (par exemple, «naissance», «mariage», «mort»).
- event_date (date) :Date de l'événement.
- place_id (int) :Clé étrangère faisant référence au tableau des «lieux».
- notes (texte) :Notes supplémentaires sur l'événement.
Explication:
* Tableau des gens: Le tableau central, contenant des informations de base sur chaque individu de l'arbre généalogique.
* Tableau des relations: Définit comment les gens sont connectés. Ce tableau vous permet de modéliser des structures familiales complexes (par exemple, des beaux-parents, des enfants adoptés, etc.)
* Tableau des places: Fournit des informations sur les emplacements associés aux personnes et aux événements (par exemple, lieux de naissance, lieux de décès).
* Tableau des événements: Enregistre des événements importants dans la vie d'une personne, comme la naissance, le mariage et la mort.
Avantages de cette structure:
* flexible: La base de données peut s'adapter à diverses structures et relations familiales.
* évolutif: Facile à ajouter de nouveaux individus et événements à mesure que l'arbre généalogique grandit.
* normalisé: Réduit la redondance des données et améliore l'efficacité.
Considérations:
* Types de données: Choisissez des types de données appropriés pour chaque colonne (par exemple, `int`,` varchar`, `` date ', `enum`).
* Relations: Assurez-vous que les relations sont correctement appliquées à l'aide de clés étrangères.
* normalisation: Considérez une normalisation plus approfondie (par exemple, la création de tableaux distincts pour les adresses, les professions) pour les grandes bases de données.
* Entrée de données: Développez une interface conviviale pour la saisie des données dans la base de données.
* Visualisation: Utilisez des outils (par exemple, des bibliothèques graphiques) pour visualiser l'arbre généalogique de la base de données.
Exemples de requêtes:
* Énumérez tous les enfants d'une personne spécifique:
`` SQL
Sélectionnez p.first_name, p.last_name
Des personnes P
Rejoindre les relations r sur p.id =r.related_person_id
Où r.person_id =
Et R.Relationship_type ='Child';
`` '
* Trouvez toutes les personnes nées dans une ville spécifique:
`` SQL
Sélectionnez p.first_name, p.last_name
Des personnes P
Rejoignez les événements e sur p.id =e.person_id
Rejoindre des places pl sur e.place_id =pl.id
Où e.event_type ='naissance'
Et pl.name =«New York City»;
`` '
Remarque: Il s'agit d'un cadre de base. Vous devrez peut-être ajouter ou modifier des tables en fonction de vos besoins spécifiques et de la complexité de votre arbre généalogique.
|