Pergunta

Fundo

Eu estou desenhando em um aplicativo que precisa para executar algo como isto

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

As bases de dados em questão são todos do mesmo tipo mas com diferentes quadros e na estrutura. Os objetos que devem ser carregados são todos os produtos de algum tipo. Os arquivos têm estrutura semelhante, mas não necessariamente o mesmo, alguns são xml, alguns são csv etc.

O aplicativo personalizado está aqui para garantir uma interface consistente para manipular os objetos recuperados a partir dos dados relacional. É uma aplicação web simples com algumas opções em cada produto e um display paginado dos produtos. Acrescenta dados adicionais para cada registro que é mantido através dos meios de um ORM.

Apenas um banco de dados estará ativo em cada instância do aplicativo, no entanto muitos formatos de arquivos pode estar ativo. A escrita destes arquivos são simultâneos.

Pergunta

Eu estive lutando com encontrar a melhor abordagem para projetar as etapas de conversão.

Existe um padrão que de alguma forma consegue combinar os esquemas diferentes em um único modelo? Há a suposição aqui que apenas os campos que estão presentes em todos os bancos de dados devem acabar no modelo.

E o que dizer o contrário? Quando os objetos produtos estão a ser escrito para o arquivo?

Eu olhei padrões diferentes, tais como o padrão de estratégia, mas eu ainda não estou tendo aquele momento em que todos os bits e peças parecem se encaixar.

Por que vale a pena o próprio aplicativo provavelmente será escrito em PHP.

Foi útil?

Solução

Esta seria a minha abordagem:

Cada DB teria uma visão sobre ele que iria apresentar os dados necessários para a sua aplicação.

O aplicativo teria uma camada que iria ler os dados e reformulá-la em uma estrutura de dados (bastante normal).

Então você teria uma camada que iria ler essas estruturas de dados padrão e escrever para os arquivos solicitados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top