IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tracabilité des modifications des données.


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut Tracabilité des modifications des données.
    Bonjour à tous,

    Je bosse actuellement sur un problème concernant la traçabilité des modifications des données dans la base de données.
    Le fonctionnel est simple : avoir une table (peut être plusieurs) contenant approximativement les champs: valeur avant, valeur après, qui, quand, type de l'élément modifié, identifiant de l'élément modifié, ....

    Après recherche sur le web, j'ai vu que le l'utilisation des triggers pouvaient s'appliquer à peu près pour cette problématique.

    Je voudrais savoir s'il n'est pas possible de le faire par programmation c#, d’une manière assez simple, relativement générique et pas trop couteuse en temps de développement.

    Quelque chose qui ressemblerait peut être, à conserver les anciennes valeurs et comparer l’ensemble des valeurs. N’étant pas très expérimenté en c#, j’avoue ne pas savoir dans quel sens prendre le problème.

    Merci d’avance pour votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Salut,

    Il faudrait éventuellement que tu est la main sur ta couche d'accès aux données et que tu log toi même lors des transactions les modifications apportés.

  3. #3
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Je l'ai fait il y'a longtemps en Oracle, avec des triggers...

    Il faut arriver à bien voir la différence entre le gain qu'on en attends et le cout que ca represente pour des grosses volumétries...


    Pour le coup des logs, ca *peut* etre une bonne idée, mais de mon expérience, si tu as une quantité de données non négligeable, les logs vont vite devenir peu aisés à manipuler (à moins de loger en base de données, mais tu perds de la précision)

    La règle qu'on a adopté pour ce genre de choses, c'est que les logs permettent de conserver des informations liées au fonctionnement de l'appli (entrée ou sortie d'une fonction, erreurs...), alors que ce que tu veux, c'est plus une fonctionnalité métier

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Citation Envoyé par DarkHerumor Voir le message
    Salut,

    Il faudrait éventuellement que tu est la main sur ta couche d'accès aux données et que tu log toi même lors des transactions les modifications apportés.
    Merci pour ta réponse,

    Je peux avoir facilement la main sur la couche d'accès aux données.
    Si j'ai bien compris ce que tu me proposes de faire, c'est avant chaque "update" de faire un "select" de l'objet à mettre à jour et de comparer champ par champ pour pouvoir faire des insert dans ma table d'historique. J'ai bien compris?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    Je l'ai fait il y'a longtemps en Oracle, avec des triggers...

    Il faut arriver à bien voir la différence entre le gain qu'on en attends et le cout que ca represente pour des grosses volumétries...


    Pour le coup des logs, ca *peut* etre une bonne idée, mais de mon expérience, si tu as une quantité de données non négligeable, les logs vont vite devenir peu aisés à manipuler (à moins de loger en base de données, mais tu perds de la précision)

    La règle qu'on a adopté pour ce genre de choses, c'est que les logs permettent de conserver des informations liées au fonctionnement de l'appli (entrée ou sortie d'une fonction, erreurs...), alors que ce que tu veux, c'est plus une fonctionnalité métier

    OK merci,
    Au risque d'être hors charte:
    • Peut on passer des paramètres à un trigger pour connaître le login utilisateur par exemple?

    • Peut on retrouver les attributs modifiées et seulement ceux-ci avec un trigger?


    Je me disais à l'origine que par programmation se serait peut être plus simple à mettre en oeuvre et à maintenir. En pratique, je ne sais pas quoi penser!!

    Merci.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Je pense que la solution des triggers sera au final la meilleure comme l'explique pvialatte.

    Tu ne peux (de mémoire) pas passer proprement dit de paramètres à un trigger. Cependant un trigger sur une action de Update, aura accès aux anciennes valeurs (avant Update) et aux nouvelles (après update).

    Par contre si ta table n'a pas de lien direct avec le login de ton Utilisateur, je t'avoue que je ne sais pas trop comment récupérer celui-ci. A part peu-être via une table supplémentaire enregistrant simplement [Login|Action|Table], et en descendant cette table, mais le tout dans une transaction (sinon tu risque d'avoir une désynchronisation entre action / dernier login).
    Mais là, attention aux perfs

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Merci,

    Ton idée d'une table suplémentaire est bonne, mais effectivement les perfs risquent de la sentir passer.
    Je ne suis toujours pas trop sur de moi sur ce sujet, et reste donc ouvrir à différentes propositions/amélioration des choses intéressants que vous m'avez proposées.

    Les triggers pourraientt ils vraiment n'enregistrer que les champs modifiés assez facilement ou ressemblerons t'ils plutôt à une usine à gaz.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Macro modification des plages de données graphiques
    Par FP789 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/08/2013, 10h42
  2. Réponses: 1
    Dernier message: 04/01/2011, 17h02
  3. Garder une trace des modifications de données
    Par wachoo31 dans le forum Modélisation
    Réponses: 6
    Dernier message: 19/09/2009, 09h54
  4. [SSIS] [2K5] Modification des sources de données
    Par Erwan1978 dans le forum SSIS
    Réponses: 4
    Dernier message: 17/06/2009, 22h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo