Domanda

Sfondo

Sono schizzi su un'applicazione che deve eseguire qualcosa di simile

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

I database in questione sono tutti dello stesso tipo, ma con diverse tabelle e la struttura. Gli oggetti che devono essere caricati sono i prodotti di un certo tipo. I file hanno struttura simile, ma non necessariamente lo stesso, alcuni sono xml, alcuni sono CSV ecc.

L'applicazione personalizzata è qui per garantire un'interfaccia coerente per manipolare gli oggetti recuperati dai dati relazionali. Si tratta di una semplice applicazione web con un paio di opzioni su ogni singolo prodotto e un display impaginato dei prodotti. Aggiunge dati aggiuntivi per ogni record che viene mantenuto attraverso i mezzi di un ORM.

Un solo database sarà attivo in ogni istanza dell'applicazione, ma molti formati file possono essere attivi. La scrittura di questi file sono simultanei.

Domanda

ho lottato con trovare l'approccio migliore per la progettazione dei passaggi di conversione.

C'è un modello che in qualche modo riesce a combinare i diversi schemi in un unico modello? C'è l'ipotesi qui che solo i campi che sono presenti in tutti i database dovrebbero finire nel modello.

E che dire il contrario? Quando gli oggetti prodotti devono essere scritti in un file?

Ho guardato diversi modelli, come il modello di strategia, ma non sono ancora avere quel momento in cui tutti i bit e pezzi sembrano a posto.

Per quello che vale l'applicazione stessa sarà probabilmente scritto in PHP.

È stato utile?

Soluzione

Questo sarebbe il mio approccio:

Ogni DB avrebbe una vista su di esso che avrebbe presentato i dati necessari per la vostra applicazione.

La vostra applicazione dovrebbe avere uno strato che avrebbe letto i dati e riformulare in un (abbastanza standard) struttura di dati.

Poi si dovrebbe avere uno strato che leggere quelle strutture di dati standard e scrivere i file richiesti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top