Informática, perguntado por lieberher, 3 meses atrás

Qualquer tipo de aplicação que grave alguma informação e que, em algum momento, possa ser recuperada, está realizando persistência. A priorização no uso do SQLite ocorre quanto há alguns problemas dependentes do sistema operacional.

A sua tarefa é pensar em uma solução para que quando a aplicação estiver conectada à Internet, consiga sincronizar com o banco de dados na nuvem (localizado no servidor externo da empresa).

Você deve analisar o modelo relacional do banco de dados e o código de exemplo, além de sugerir as mudanças necessárias (tanto no modelo quanto no código) para essa sincronização.

Apresente o novo modelo relacional de banco e o código com as suas modificações. A solução implementada pode ser visualizada na imagem a seguir:

Anexos:

Soluções para a tarefa

Respondido por mairacirino
2

Uma possível solução seria adicionar na tabela “Item_Venda” um campo chamado “ItemVenda_Status : Integer”. Esse campo ficaria responsável por identificar se a aplicação se encontra on-line ou off-line no momento em que o registro está sendo inserido. Estando off-line, o registro recebe no campo “status” o valor 0; estando on-line, recebe o valor 1. Seguindo essa lógica, você poderia implementar outro serviço, o qual identificasse quando a aplicação está on-line ou off-line.

Quando esse novo serviço identificasse que a aplicação estivesse on-line, ele buscaria no banco local SQLite, todos os registros da tabela “Item_Venda” com o valor de “status” igual a 0 e sincronizaria com o banco na nuvem. Em seguida, alteraria esse valor de “status” para 1, de modo a informar que esse registro já foi sincronizado. Registros inseridos no momento em que a aplicação estivesse on-line já receberiam o valor 1 no campo “status” e não precisariam passar por essa sincronização. No código de exemplo, bastaria adicionar o novo campo na tabela “Item_Venda”.

O serviço de identificação de conexão com a Internet ficaria responsável por identificar a conexão. Quando um objeto itemVenda fosse carregado, esse serviço verificaria a conexão e já carregaria o status (0 ou 1) no objeto. No novo código, bastaria adicionar o novo campo. O modelo relacional e o exemplo modificados podem ser visualizados a seguir:

Perguntas interessantes