Bonjour,
J'utilse MySQL et je cherche à récupérer les événements de modifications (des autres utilisateurs) sur les données d'une table.
La chose est-elle possible car je ne vois pas où mettre le listener ?
Merci
Bonjour,
J'utilse MySQL et je cherche à récupérer les événements de modifications (des autres utilisateurs) sur les données d'une table.
La chose est-elle possible car je ne vois pas où mettre le listener ?
Merci
Tu pourrais surement mettre en place une table de log qui serait rempli par des trigger, j'ai vu que MySQL le permettait.
http://dev.mysql.com/doc/refman/5.1/...e-trigger.html
Ensuite, tu n'aurais qu'à regarder de temps en temps cette table log pour voir s'il y a eu des modifications et lesquelles...
Jc
EDITION: Dépendant comment les autres utilisateurs modifient ta BD, si c'est toi qui programmes les clients, tu pourrais simplement faire les ajouts dans la table log et ne pas passer par des trigger... Plus simple et plus propre...
Inconvénient de cette méthode, ce n'est pas en "temps réel". Les applications clientes ne se rendent compte du changement de la base que lorsqu'elles vont voir cette fameuse table de log.
Oui mais il ne demande pas à l'avoir en "temps réel"...
Tu pensais à un message qui serait envoyé à un destinataire disant que la table a changée?
J'avais utilisé cette méthode de table de log une fois pour faire un chat.
pb : savoir trouver le compromis entre la fréquence ou les clients vont chercher l'info, le trafic engendré, et la charge du serveur pour ces requêtes inutiles.
Sa question de base m'interresse beaucoup en ce sens, car j'avoue ne pas trop m'y connaître en ce domaine.
ça doit être possible sans problème si on peut faire tourner ce qu'on veut sur le serveur, mais si on ne peut mettre dessus que du php et mySQL j'ai peur que ce soit impossible sans passer par les tables de logs.
Je me trompe ?
Edit : Il serait pas dans le mauvais forum ce post d'ailleurs :p
Merci pour le consiel mais en fait je souhaiterais éviter de toucher à la structure (ajout de tables, triggers, ...), d'autres outils l'utilisent déjà.
Pour le forum si c'est possible, je préférerais avoir une solution Java plus que du spécifique MySQL.
En admettant que ce soit possible, c'est pas JAVA qui va te faire ça, mais bien MySQL qui émettrait un événement ou je ne sais quoi que toi ensuite tu traiterais en JAVA.
Ils te renseigneront bien mieux là bas qu'ici.
Pour Java le seul moyen est d'interroger à interval déterminé ta table à mon avis
Un patern observateur activé par ta base, le problème est effectivment de l'activer... Je dirais que ce n'est pas possible a moins que tous les appels vers ta base passe par un servlet qui te permet d'activer ton observateur.
Juste à titre de curiosité, peut on faire un observateur à partir d'un fichier? Si oui, une base ne pourrait pas loger quelques part ses modifications? (Je ne connais pas grand chose en bdd, oui... )
Partager