2011-01-12 4 views
2

Lorsque vous passez d'un RDMS (MySQL) à une base de données graphique ou document, cela nécessite-t-il de nombreuses modifications du code d'application ou une réécriture complète du code? J'utilise MySQL mais je prévois de passer à 5-6 mois pour une implémentation NoSQL pour certains modules. Je souhaite donc conseiller mon équipe de développement sur les meilleures pratiques en matière de développement afin de minimiser le temps passé et de minimiser les changements de code. Plate-forme actuelle est PHP codeignitor avec MySQL.Website est un site de contenu utilisateur.Passage de Mysql à nosql plus tard. Exigences du code?

Vous devez utiliser le DB graphique pour le composant amis et le DB de document pour stocker le courrier, les détails de profil et les flux d'activité. Actuellement, nous avons passé plus de 2 mois sur la création du schéma dans MYSQL qui semble être un gâchis étant donné que le changement se produira dans quelques mois d'où je veux éviter autant de changements de code que possible plus tard.

Pour un, il peut être nécessaire de supprimer toutes les requêtes SQL du code pour ces modules?

+0

Avez-vous utilisé un ORM? Si oui, vous pouvez être d'accord. Sinon, vous devrez réécrire la plupart des choses à faire avec le modèle. –

+0

Non, pas ORM. Même la logique d'application comme les fonctions/classes? – BrianJ

+0

Presque tout ce qui touche directement les données devra être réécrit. Ma suggestion serait de résumer un peu la logique de mysql, même si c'est quelque chose d'aussi simple que function query ($ query) {return mysql_query ($ query);} 'et ensuite utiliser query() au lieu de mysql_query() dans le script, puis faites-le pour à peu près toutes les fonctions de base de la base de données. De cette façon, vous pouvez revenir plus tard et essentiellement débrancher ces fonctions et brancher un nouveau jeu de fonctions avec les mêmes noms qui tire des données de n'importe quelle source et renvoie les résultats dans le même format que MySQL. – Phoenix

Répondre

0

Vous pouvez utiliser OQGraph, qui est un moteur de graphe plugabble pour MySQL. Pourrait vous sauver du travail.

+0

Semble intéressant, mais besoin de rechercher si elle évolue avec un grand volume. – BrianJ

+0

Il est livré avec MariaDB 5.2, vous pouvez donc le télécharger pour les tests. J'ai vu une session de l'Université MySQL à ce sujet avec des présentations vraiment passionnantes. Cela semble certainement bien. – Mchl

0

Créez un module d'accès aux données dans votre code. Les modifications seront localisées dans ce module. Vous recompilez UNIQUEMENT le module d'accès aux données.

Bien sûr, si votre code n'a pas été compilé pour séparer les DLL pour commencer, vous devrez restructurer et recompiler la majeure partie du projet.

Vous devez réaliser qu'il s'agit d'un changement d'interface et non d'un simple changement d'implémentation. Il n'y a pas de meilleure pratique magique dans le monde qui puisse vous protéger du changement d'interface. Tout ce que vous pouvez faire est de compter sur une base de code correctement structurée compilée pour séparer les DLL afin de localiser les changements de code et de recompiler.

+0

PHP n'est pas un langage compilé (compilé à exécutable - il pourrait être, mais en général n'est pas), mais structurer correctement l'application est toujours une bonne idée;) – Mchl

+0

Je suis perdu. Qu'est-ce que cela signifie en anglais? :) – BrianJ

Questions connexes