# Gnral Dveloppement > ALM > Modlisation > Schma >  "Archivage" de donnes modifies

## Nerva

Bonjour.

Il y a assez longtemps de a j'avais trouv sur le site un PDF trs intressant concernant "l'archivage" (a ne doit pas tre le bon terme) des donnes dans une base et je n'arrive pas  remettre la main dessus. Ce document indiquait comment procder pour conserver des donnes originales lorsqu'elles changeaient dans le temps, document que je n'ai malheureusement pas gard.

Exemple trs concret : dans une table de salaris, comment s'y prend t-on quand une femme se marie et change de nom ?

Autre exemple, moins concret mais envisageable : dans une mme table, comment fournir des chiffres exacts si le chef de service nous demande combien de salaris habitaient dans telle ville en 2018, sachant qu'il est impossible que personne n'ait dmnag depuis ?

En esprant tre clair...

Merci.

----------


## escartefigue

Bonjour,

Certains SGBD tels que IBM DB2 et MS SQL Server proposent des tables temporelles.
Sinon, selon le besoin, il faut crer une ou plusieurs tables d'historique.
Pour le cas du "changement de nom", on ne remplace jamais le nom de naissance par le nom marital : dans une table des personnes, on prvoit une colonne "nom de naissance" et une colonne "nom d'usage" qui sera "nullable".

----------


## Nerva

Pour ce qui est de l'adresse, j'avais en quelque sorte une solution sous les yeux qui pourrait fonctionner. Gnralement, les adresses sont stockes dans une table T_ADRESSES et les localits dans une table T_LOCALITES. Des cls trangres s'occupent des relations : T_LOCALITES, T_ADRESSES, T_PERSONNES. Ce qui fait que plusieurs adresses sont saisissables pour une personne. Le but initial n'tait pas d'historiser mais de prciser par exemple une adresse pour une rsidence principale et une pour une rsidence secondaire (ou une adresse de villgiature en semaine et une le week-end). Il suffirait donc d'ajouter une colonne DATE et il serait ainsi facile de grer un historique des dmnagements (ce n'est qu'un exemple parmi tant d'autres). Resterait ensuite  concevoir une requte qui irait chercher les rsultats en fonction de diffrents paramtres.

Pour le nom, j'ai pour habitude de dfinir 2 colonnes, comme vous prcisez, nom de naissance et nom d'usage. Seulement, je fais les choses  l'envers : nom de naissance uniquement pour les femmes maries. Mais quoi qu'il en soit, a ne rsout pas le problme si le cas suivant se prsente :

- En 2001, Mlle Dupont est embauche dans l'entreprise.
- En 2002, elle devient Mme Durand.
- En 2010, elle divorce.
- En 2015, elle se remarie et devient Mme Dulac.

----------


## escartefigue

En gnral on ne s'intresse gure  l'historique des noms d'usage, mais si toutefois c'est le cas, alors soit on cre une table historique alimente par traitement, soit on utilise les tables temporelles (si toutefois le SGBD concern les propose, ce n'est pas le cas de tous)

----------

