Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
intro_histoire_numerique:modele_logique [2020/11/08 00:49] Francesco Beretta |
intro_histoire_numerique:modele_logique [2020/11/11 20:34] Francesco Beretta |
||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
- | {{:intro_histoire_numerique:mcd_to_database_example.jpg?300|Exemple de modèle conceptuel}} | + | {{:intro_histoire_numerique:mcd_to_database_example_drawio.jpg?300|Exemple de modèle conceptuel}} |
+ | Modèle conceptuel réalisé avec le logiciel diagrams.net (draw.io) (clicker sur le diagramme deux fois pour afficher). Concernant le logiciel, [[http://phn-wiki.ish-lyon.cnrs.fr/doku.php?id=intro_histoire_numerique:modelisation_bases_donnees&#logiciel_pour_realiser_le_modele_conceptuel|voir cette page]]. | ||
\\ | \\ | ||
Ligne 16: | Ligne 17: | ||
* dater et localiser les naissances des personnes (afin de les afficher sur une carte) | * dater et localiser les naissances des personnes (afin de les afficher sur une carte) | ||
* représenter les liens familiaux: parents, fratrie, jumeaux, etc. | * représenter les liens familiaux: parents, fratrie, jumeaux, etc. | ||
+ | * on utilise la classe Union qui représente la relation des parents (mariage, union libre, etc.) donnant lieu aux naissances | ||
+ | * les autres rapports de parentée sont __calculés__ à partir des unions | ||
+ | * les autres rapports de parentée ne doivent pas être renseignés en utilisant la classe union | ||
* gérer les différentes appellations des personnes | * gérer les différentes appellations des personnes | ||
* classifier les personnes avec une classification définie par l'utilisateur (//tags//) | * classifier les personnes avec une classification définie par l'utilisateur (//tags//) | ||
Ligne 157: | Ligne 161: | ||
On procède ainsi pour toutes les autres tables. | On procède ainsi pour toutes les autres tables. | ||
+ | |||
+ | * **IMPORTANT** : Traitement des **dates** | ||
+ | * dans une base de données SQLite (sqlite3) le format de DATE n'imposte pas de contrainte précise, ça peut être un chiffre ou une chaine de caractères (cf. [[https://www.w3resource.com/sqlite/sqlite-data-types.php|ces explications]]) | ||
+ | * Si on traite uniquement des dates dans l'Ére commune ou chrétienne (après Jésus-Christ) on peut utiliser la valeur VARCHAR pour les dates, en mettant une limite à 12 charactères et en utilisant le format ISO qui permet les dates tronquées et le tri de type texte: 1900-10-15, 1900-10, 1900. | ||
+ | * Si on a des dates avant l'Ère commune, deux champs sont nécessaires : année (entier avec valeur négatives possible) ; mois-jour si nécessaire (varchar) | ||
+ | * Si on a besoin de heures:minues:secondes les ajoute (dans les deux cas) après le jour, par exemple sous cette forme 1900-10-15T09-10-04 | ||
+ | |||
A noter que on ne pourra pas créer la table 'person' ou 'birth' directement avec toutes les clé étrangères, car 'birth' dépend de 'union' qui dépend à son tour de 'person'. | A noter que on ne pourra pas créer la table 'person' ou 'birth' directement avec toutes les clé étrangères, car 'birth' dépend de 'union' qui dépend à son tour de 'person'. |