Pregunta

Este es mi problema: necesito almacenar un lote de mensajes de registro y pensé que sería inteligente mantenerlo en una base de datos SQLite3 para poder buscarlo y filtrarlo fácilmente.

Mostraré los mensajes de registro en un widget de lista estándar (usando wxWidgets). La lista tendrá varias columnas y puede ser ordenada y filtrada por el usuario.

Ahora, no estoy seguro de cuál es la mejor manera de manejar esto. Estoy pensando en algunas posibles soluciones:

  1. Lea todos los mensajes en la memoria. Cuando haya un mensaje de registro nuevo o modificado (en una posición aleatoria en la lista), se deberá actualizar la lista completa. Lo mismo cuando el usuario quiere filtrar la lista u ordenar en una columna diferente.
  2. Lea todas las ID en una matriz y recupere el mensaje de registro completo a pedido (cuando el usuario desplaza la lista para que se hagan visibles).
  3. Use la interfaz SQL para obtener los resultados a pedido, utilizando SQL para seleccionar el sub-resultado exacto que se requiere.

Pero realmente, simplemente no estoy acostumbrado a trabajar con este tipo de problema, ¡por lo que se agradece cualquier consejo!

¿Fue útil?

Solución

¿Qué hay de usar la paginación?

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

Donde offset y count son valores que puede elegir. Puede utilizar esto para obtener cualquier número de entradas de registro. Luego, agregue el siguiente botón para permitir que el usuario vea la siguiente página de entradas. Combinada con la capacidad de filtrar y ordenar, la búsqueda de registros no puede ser más fácil.

Otros consejos

Comencé a escribir esto como un comentario a la respuesta de Nadia, pero empecé a divagar y se hizo demasiado largo :)

Tenga en cuenta que a medida que aumenta la cantidad de entradas de registro, la barra de desplazamiento se vuelve inútil. El movimiento más pequeño en el pergamino termina moviéndose a través de la lista drásticamente. Eso hace que no sea práctico para un usuario utilizar para buscar en la lista.

Piense por qué los usuarios realmente buscarán en estas entradas y diseñarán alrededor de eso. Las listas muy grandes no solo son difíciles de trabajar con el código, también son difíciles para que trabajen los usuarios. Probablemente les daría algunos criterios de filtro y resultados paginados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top