J'ai un backend Spring + Hibernate + MySQL qui expose mon modèle (8 entités différentes) à un client de bureau. Pour rester synchronisé, je souhaite que le client demande régulièrement au serveur les modifications récentes. Le processus peut être la suivante:Stratégie de base de données pour la synchronisation basée sur les changements
- Point A: Le client se connecte pour la première fois et récupère tout le modèle du serveur.
- Point B: Le client demande au serveur pour toutes les modifications depuis le point A.
- point C: Le client demande au serveur pour toutes les modifications depuis le point B.
Pour récupérer les modifications (point B & C) Je pourrais créer une requête HQL qui retourne toutes les lignes de toutes mes tables qui ont été modifiées pour la dernière fois depuis ma récupération précédente. Cependant, j'ai peur que cela puisse être une requête lourde et dégrader ma performance si elle est exécutée souvent. Pour cette raison, je considérais d'autres alternatives comme garder un tableau séparé avec des mises à jour récentes pour un accès rapide. J'ai cherché à utiliser le cache de requêtes L2, mais il ne semble pas servir à mes fins.
Est-ce que quelqu'un connaît une bonne stratégie pour mon but? Ma première pensée est de garder le contrôle de la synchronisation et d'éviter d'utiliser des outils de synchronisation "automatiques".
Un grand merci