Pergunta

Este é o meu problema: eu preciso armazenar um muito de mensagens de log e achei que seria inteligente mantê -lo em um banco de dados SQLITE3 para poder pesquisar e filtrá -lo facilmente.

Vou exibir as mensagens de log em um widget de lista padrão (usando WxWidgets). A lista terá várias colunas e pode ser classificada e filtrada pelo usuário.

Agora, não tenho certeza de qual é a melhor maneira de lidar com isso. Estou pensando em algumas soluções possíveis:

  1. Leia todas as mensagens na memória. Quando houver uma mensagem de log nova ou alterada (em uma posição aleatória na lista), a lista inteira deverá ser atualizada. A mesma coisa quando o usuário deseja filtrar a lista ou classificar em uma coluna diferente.
  2. Leia todos os IDs em uma matriz e recupere a mensagem de log completa sob demanda (quando o usuário rola a lista para que eles sejam visíveis).
  3. Use a interface SQL para buscar os resultados sob demanda, usando o SQL para selecionar o sub-resulto exato necessário.

Mas, na verdade, não estou acostumado a trabalhar com esse tipo de problema, então qualquer dica é apreciada!

Foi útil?

Solução

Que tal usar a paginação?

SELECT *
FROM logs
WHERE ...
ORDER BY ...
LIMIT offset, count

Onde deslocamento e contagem são valores que você pode escolher. Você pode usar isso para obter várias entradas de log. Em seguida, adicione um botão próximo para permitir que o usuário visualize a próxima página de entradas. Combinado com a capacidade de filtrar e uma classificação, a pesquisa de log não pode ser mais fácil.

Outras dicas

Comecei a escrever isso como um comentário para a resposta de Nadia, mas comecei a divagar e ficou muito tempo :)

Lembre -se de que, à medida que o número de entradas de log fica muito grande, a barra de rolagem se torna inútil. O menor movimento no pergaminho acaba se movendo pela lista drasticamente. Isso torna impraticável um usuário usar para pesquisar na lista.

Pense no motivo pelo qual os usuários realmente examinarão essas entradas e projetarão em torno disso. Listas muito grandes não são apenas difíceis de trabalhar no código, elas também são difíceis para os usuários trabalharem. Eu provavelmente daria a eles alguns critérios de filtro e resultados com paginação.

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