Conseil technologie

Bonjour,
Je voudrais développer une application web qui se résume à de la consultation de tables de base de données.
Pour la partie client je m’oriente vers du AngularJS et la partie persistence des données Django ou Java par EclipseLink ou Hibernate à travers JBoss.
Ce que j’aimerais c’est que lors d’une consultation d’une table, le système puisse automatiquement m’indiquer que le jeu de données sur lequel je travaille est obsolète due à des modifications par d’autres processus/utilisateurs. J’avais pensé utiliser une table des mouvements qui par l’intermédiaire de triggers sur toutes les tables pourraient me donner l’information, mais je trouve ça lourd.
Savez vous s’il existe des outils capable de faire de la surveillance de ce type ?

Bonjour,
un regard sur les verrous
perso.limsi.fr/anne/cours/cours12.pdf
A+
JB1

Avec les locks tu contournes le problème, moi je ne veux pas empêcher les modifications, je veux juste être averti.
Avec Oracle, il y a des vues système qui permettent de faire ce que je veux, mais c’est une solution propre à Oracle, je cherche une appli indépendante du SGDB.

Ajouter une colonne date_modification ?

Dès que tu entres dans la page modif, il enregistre le temps date_modificaion de ce qui est à modifier et la date actuel, puis pendant ta modification, il fait des check répéter tous les x temps et/ou une fonctionnalité temps réel quand tu cliques dessus (ce qui permet de pas attendre le check répéter avec au temps si elle est longue) et/ou faire un check sur le bouton “mettre à jours ou appliquer” il check mais ne modifie pas s’il y a eu une modification et te l’informe, sinon il applique la modification.

Je pense que j’aurais fait un truc dégueulasse à base de surveillance de log.
Ce n’est pas un conseil, juste une voie à explorer (peut-être).

[quote=“kripteks”]Ajouter une colonne date_modification ?

Dès que tu entres dans la page modif, il enregistre le temps date_modificaion de ce qui est à modifier et la date actuel, puis pendant ta modification, il fait des check répéter tous les x temps et/ou une fonctionnalité temps réel quand tu cliques dessus (ce qui permet de pas attendre le check répéter avec au temps si elle est longue) et/ou faire un check sur le bouton “mettre à jours ou appliquer” il check mais ne modifie pas s’il y a eu une modification et te l’informe, sinon il applique la modification.[/quote]

+1
Facile a mettre en œuvre, et reviens finalement à faire un log facile à utiliser et intégré à ta DB.

Faire une colonne avec la date de mise à jour est une bonne chose.
Quand tu demande la modification d’une donnée tu envoi en même temps l’ancienne donnée (+ date de modif) pour être sur de ce que tu modifi. Et si ça colle pas tu refuse la modif.
Sinon pour voir apparaitre en direct les modifs des autres utilisateurs tu peut mettre en place un service de «push» qui est déclanché a chaque mise à jour de données.

La date de modification existe déjà (ainsi que celle de création, l’utilisateur de création et de modification en plus), j’affiche des milliers d’enregistrements dans une datagrid, je ne veux pas savoir si un enregistrement en particulier est modifié mais si un seul est modifié dans toute la table, en gros un flag général … Finalement je suis passé par des triggers, ça fonctionne mais c’est propre à ma BDD. Je pensais qu’il y avait des outils propre à une sérialisation des données.

Côté fichier, tu peux modifié le fichier de modification, en cas d’application de modification, il t’envoie un signal et ta pas besoin de check la base de donnée, faut juste check le signal.
Par contre, s’il y a un changement manuel dans la base (hors fichiers web), c’est pas vu.

Pour info, je me suis amusé avec couchDB, et bien chaque enregistrement contient automatiquement quel que soit le moyen utilisé pour mettre à jour une donnée, une version de révision … Comme quoi il y a toujours une solution, du coup je vais sûrement changer de technologie et laisser tomber Oracle (en même temps c’est plus simple pour installer une version de l’appli chez un tiers, tout est open-source :slightly_smiling: )