Devo usar um arquivo ou banco de dados plano para armazenar cotações para um aplicativo de cotações aleatórias no Android?

StackOverflow https://stackoverflow.com/questions/1565869

Pergunta

Estou desenvolvendo um aplicativo no Android que escolherá e exibirá aleatoriamente uma citação (ou verso) inspirador de uma grande coleção de citações. No Android, posso escolher entre um arquivo plano e um banco de dados SQLite.

O aplicativo deve satisfazer as seguintes condições:

  1. Ser escalável para 10^6 citações e/ou versos

  2. Seja muito rápido (ou seja, recupere e exiba uma cotação, imediatamente com o toque de um botão)

  3. Ser capaz de carregar novas citações de uma fonte externa (em um formato que ainda não decidi)

Qual formato de dados devo usar? Obrigado.

Foi útil?

Solução

Eu iria com um banco de dados muito simples, tabela única:

Quotes
ID          sequential integer PK
Quote       text/string

Com um possível campo de bits "visualizado", você pode atualizar para evitar duplicatas. Gere um valor aleatório e selecione essa linha da tabela, marque a visualizada e faça com que ela seja feita.

O problema com um arquivo plano é encontrar rapidamente e ler uma cotação do meio do arquivo. É isso que um banco de dados faz bem. Também com um arquivo "plano", você terá muito espaço desperdiçado no final das linhas de arquivo.

Além disso, se você pode carregar novas citações, por que preencher 10^6 a qualquer momento? Basta carregar o suficiente para manter o aplicativo e marchar através deles em uma ordem seqüencial, excluindo os vistos e carregando novos. Essa abordagem exigiria que você acompanhasse a última cotação carregada, para que você esteja sempre carregando novos.

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