2010-01-07 25 views
1

Contextedesining un système car je suis esquissant mutiple entrée/sortie multiple

sur une application qui a besoin d'exécuter quelque chose comme ce

database a >--|       |--> fileformat 1 
database b >--+--> custom application >--+--> fileformat 2 
...   |       | ... 
database n >--|       |--> fileformat n 

Les bases de données en question sont tous du même type mais avec des tables et une structure différentes. Les objets à charger sont tous des produits d'un certain type. Les fichiers ont une structure similaire mais pas nécessairement les mêmes, certains sont en XML, d'autres sont en csv, etc.

L'application personnalisée est là pour assurer une interface cohérente pour manipuler les objets récupérés à partir des données relationnelles. C'est une application web simple avec quelques options sur chaque produit et un affichage paginé des produits. Il ajoute des données supplémentaires à chaque enregistrement qui est conservé par le biais d'un ORM.

Une seule base de données sera active dans chaque instance de l'application, mais de nombreux formats de fichiers peuvent être actifs. L'écriture de ces fichiers est simultanée.

Question

J'ai eu du mal à trouver la meilleure approche pour la conception des étapes de conversion.

Existe-t-il un modèle qui parvient à combiner les différents schémas en un seul modèle? On suppose ici que seuls les champs présents dans toutes les bases de données sont supposés se retrouver dans le modèle.

Et qu'en est-il de l'inverse? Quand les objets du produit doivent être écrits dans un fichier? J'ai regardé différents modèles tels que le modèle de stratégie, mais je n'ai toujours pas ce moment où tous les morceaux semblent se mettre en place.

Pour ce que cela vaut la peine l'application elle-même sera probablement écrite en PHP.

Répondre

2

Ce serait mon approche:

Chaque DB aurait une vue sur ce qui présenterait les données nécessaires à votre application.

Votre application disposerait d'une couche qui lirait les données et les reformulerait en une structure de données (assez standard).

Ensuite, vous auriez une couche qui lirait ces structures de données standard et écrirait dans les fichiers demandés.