2012-10-12 8 views
-1

Je suis en train de concevoir une application destinée aux clients Windows, Wed, Driod, iOS et Windows Phone. Je suis dans une énigme sur ce qui est la meilleure base de données à utiliser et quelle est la meilleure approche de l'architecture à suivre.Meilleures bases de données de synchronisation sur plusieurs plates-formes

Première pensée Avoir un DB maître qui anime le site et tous les clients l'information, et ayant BDs plus petits poids légers sur les machines clientes qui se synchronisent avec le maître que le sous-ensemble des informations pertinentes à l'utilisateur souscrit. Cela signifie que si je suis l'utilisateur 101 puis mon application Windows, driod, iOS apps aura seulement mon sous-ensemble de données dans la base de données locale qui me donnera le pouvoir de travailler hors ligne, mais quand je suis en ligne, je peux synchroniser avec la base de données principale.

Second Thought Donner à chaque client sur leur base de données sur le serveur et puis juste avoir leurs applications de systèmes d'exploitation indépendants de synchronisation avec leur propre base de données de. Ma pensée derrière ceci est que la synchronisation est moins complexe.

Mon objectif est de le faire de façon à ne pas s'enliser avec des problèmes de maintenance, ce qui rendra le système flexible pour la croissance.

Toutes les suggestions ou questions seraient fantastiques. Aussi ce que DB serait le meilleur? En outre, quelle technologie de synchronisation serait la meilleure?

Le site Web sera en Asp.net. l'application Windows sera également en .Net.

+0

Ceci est vraiment généralisé et semble être plusieurs questions différentes en un. Stack Overflow n'est pas un forum de discussion général, donc cela sera probablement fermé (et downvoted, bien que je ne l'ai pas). Veuillez lire http://stackoverflow.com/faq. –

+1

Remarques générales: La synchronisation bidirectionnelle DB-vers-DB est un cauchemar, évitez-la à tout prix. Cela peut être OK si vous pouvez assigner un côté à être le «gagnant» dans toutes les résolutions de conflit et ne pas déranger les anomalies comme les enregistrements supprimés réapparaissant, mais globalement - éviter. J'utiliserais une base de données centralisée et un service Web. –

+0

Pas sûr que je suis d'accord c'est général, c'est DB question de l'architecture de synchronisation, Désolé si je ne sais pas assez pour être précis, mais je cherchais quelques pointeurs de formulaire PPL qui avaient de l'expérience. J'ai fait beaucoup de recherches. Peux-tu me diriger vers un forum sur l'architecture? – ChampChris

Répondre

1

Idéalement créer une base de données centrale et créer des services Web pour l'interface. De cette façon, l'appareil et le logiciel que vous utilisez pour vous connecter doivent uniquement comprendre la messagerie http de base. NodeJS a une librairie PostgreSQL vraiment sympa que vous pourriez utiliser avec un module nodejs appelé Express qui vous permettrait de créer des routes vers vos procédures de base de données. Par exemple, un appel de http://myaddress.com/select_all_employees acheminerait à un appel qui invoque la procédure stockée qui va sélectionner et vous renvoyer tous les employés dans une chaîne JSON ou un autre format standard. Tout appareil et son cadre de développement devrait être capable de faire ce type d'appel Web simple.

+0

Ma réponse suppose que vous n'avez pas besoin d'être déconnecté. – Kuberchaun

+0

Notez également que vous pouvez également envoyer des paramètres aux itinéraires Express. – Kuberchaun

+0

Suite à cette logique, je serais également en mesure d'empiler la requête à la base de données centralisée dans une situation hors ligne.Signification si un client est déconnecté Je peux remplir la base de données client et attendre de traiter de nouveaux insertions ou mises à jour lorsque le client revient en ligne – ChampChris

Questions connexes