J'ai une expérience très limitée de la programmation de base de données et mes applications qui accèdent aux bases de données sont simples :). Jusqu'à présent :(J'ai besoin de créer une application de bureau de taille moyenne (appelée client enrichi?) Qui utilisera une base de données sur le réseau pour partager des données entre plusieurs utilisateurs, probablement C# et MSSQL/MySQL/SQLite. J'ai effectué quelques tests de conduite et j'ai découvert que sur des réseaux de mauvaise qualité, l'accès à la base de données n'est pas très simple: dans un réseau local, beaucoup de données sont transférées sur le réseau et les serveurs sont à charge constante. une requête INSERT ou SELECT SQL simple prendra 1-2 minutes ou même échouera avec timeout/erreur de réseauFrontend de base de données riche - comment gérer correctement les réseaux de faible qualité?
Est-il des pratiques recommandées pour gérer de telles situations? Bien sûr, je peux diviser mon application en thread graphique et thread DB afin les problèmes de réseau ne mèneront pas à une interface graphique figée. erreurs de travail? Les afficher à l'utilisateur trop souvent ne sera pas très bon :(Je pense à créer automatiquement une copie locale d'une base de données sur chaque ordinateur que mon application exécute: d'abord mettre à jour la base de données locale et la synchroniser en arrière-plan. Cela permettra une application pour fonctionner événement si le réseau a de grands LAG/problèmes.
les conseils et mots à la mode ce que je peux regarder en? peut-être que c'est une des meilleures pratiques déjà que je ne sais pas :)
C'est une situation normale pour les petites et moyennes entreprises où les réseaux sont mal conçus, mal assemblés et peu entretenus :). Bien sûr, le serveur MySQL est plus tolérant au réseau que SQLite, mais les pings de 2-3 secondes qui ne peuvent pas s'ouvrir en raison des retards peuvent tuer toute conversation réseau entre l'application et la base de données :) – grigoryvp