#1 Thu 27 April 2023 12:23
- ptycharly56
- Participant occasionnel
- Lieu: Lorient
- Date d'inscription: 13 Jan 2015
- Messages: 19
QGIS: Historique des Editions d'une couche
Bonjour,
Je recherche un moyen d'ajouter un suivi de modifications dans une table, pourquoi pas via un champ virtuel.
L'objectif est de savoir pour chaque entité de la couche, a minima, quand elle a été modifiée et au mieux quel(s) champ(s). Après quelques recherches je n'ai pas trouvé d'information. Y aurait-il un moyen relativement simple permettant d'identifier ces modifications?
Dernière modification par ptycharly56 (Thu 27 April 2023 12:24)
Hors ligne
#2 Fri 28 April 2023 18:09
- Alban Kraus
- Participant actif
- Lieu: Tulle (19)
- Date d'inscription: 13 Jan 2022
- Messages: 52
Re: QGIS: Historique des Editions d'une couche
Bonjour,
À ma connaissance, ni QGIS, ni la plupart des formats de donnée ne supportent une telle fonctionnalité.
Trois solutions me paraissent couramment employées.
1°) Ajouter des champs "Dernière modification le", "par", et optionnellement "description". On peut souvent mettre une valeur par défaut 'now' au premier. Facile à implémenter, mais la mise à jour est loin d'être automatique.
1bis) Variante : pour chaque champ x, rajouter un champ x_update avec la date de dernière mise à jour de ce champ, avec une expression par défaut du genre CASE WHEN current_value('x') != "x" THEN now() ELSE "x_update" END. Jamais testé.
2°) Interdire les modifications (UPDATE), ajouter deux champs "identifiant" et "valide du", n'afficher que la ligne la plus récente pour chaque "identifiant", et forcer la mise à jour par insertion d'une nouvelle ligne. Assez facile à implémenter avec un SGBD, mais peu intuitif, l'historique des modifications n'est pas facile à suivre, et la taille du jeu de données peut rapidement atteindre des proportions hors de contrôle.
3°) Utiliser un format de donnée textuel (tel que le CSV, le DXF, le GML, ou l'Edigéo) et un gestionnaire de code source. Assez difficile à mettre en place, très difficile à utiliser.
Je vous conseille de rester sur le 1°) ou une légère variante.
Hors ligne