[pyar] ot: duda sobre sqlite

Angel Java Lopez ajlopez2000 en gmail.com
Dom Mayo 24 10:34:15 ART 2015


Hola gente!

Miguel, ah! tarde un rato en darme cuenta que "ordenar" es un orden
arbitrario, no es ordenar los strings por contenido!

Si es solo para mostrar los strings en el orden que quieren, por ejemplo,
una lista de tareas a realizar, ordenada por un criterio cualquiera, el
eliminar una tarea no afectaria al orden de los demas. No hace falta
ajustar ningun numero

Si se quiere agregar un string, antes del que tiene, digamos, orden 140, se
ajusta con un update set orden = orden + 1 where order >= 140 (o algo asi)
y luego se inserta el nuevo string con orden = 140

Si se quiere agregar un string DESPUES del digaqmos, orden 155, se ajusta
con un update set orden = orden + 1 where order > 155, y luego se inserta
el nuevo string con orden 156

Algo asi vi usado en un sistema que mostraba la lista de tareas del sprint
de un backlog.

SOLO si depende el futuro de la humanidad, optimizaria a:

Si hay que insertar algo luego del 140, y el proximo al 140 es el 160, no
ajusto nada e inserto el nuevo string en 150

Si hay que insertar algo antes del 140, y el anterior al 140 es el 120, no
ajusto nada e inserto el nuevo string como 130

Jaja... ya saben, haria  todo esto con TDD :-)

Otras opciones?

Nos leemos!

Angel "Java" Lopez
@ajlopez

2015-05-24 10:18 GMT-03:00 miguel Barraza <correo en miguelbarraza.com.ar>:

>  Buenas grupo, aunque esta pregunta no está relacionada precisamente a
> python pero la hago aquí por si alguno me orienta o sabe como hacer lo
> siguiente.
>
>
> tengo una base de datos sqlite que recibirá una sucesión de strings con la
> cual tengo que terminar haciendo un reporte:
> exportar un texto con todos los strings ordenados.
>
> y la info es:
> 1. no tengo la cantidad de strings finales, pueden ser 20 o pueden ser
> muchos.
> 2. estos strings pueden variar durante el proceso.
> y 3. incluso muchos de ellos terminar siendo borrados o remplazados.
>
> mi problema recide en que no se como ordenarlos, creé una tabla de la
> siguiente forma:
> id autoincremental,
> orden numeric,
> data text.
>
> y según el orden que se acomode los strings le voy asignando un número en
> el campo "orden".
> pero mi problema es: ¿cómo acomodar ese campo "orden" sin saturar mucho el
> proceso?
>
> imaginando que tenemos 300 strings.
> si borro el número 200: debería acomodarse del 200 para arriba
> decrementando un valor.
>
> y si luego agrego uno después del 155: debería correrse todo un valor
> arriba pasar el 156 al 157 y así. para dejar lugar al nuevo string 156.
>
> para que quede una idea mejor explicado imaginemos que es como un texto,
> cuando agregamos una nueva linea todo se corre hacia abajo, y cuando la
> quitamos todo se corre hacia arriba.
>
> hay alguna sentencia sqlite que me permita autoincrementar en 1 todos los
> valores mayores a x, o viseversa??
> ya que tirar muchas consultas para ir incrementando de una en una no me
> parece muy productivo, sobrecargaría el proceso y tardaría en responder mi
> script y mas si el número de strings termina siendo muy grande.
>
> y porque lo ahgo en sqlite?: porque me piden que utilise ese motor.
>
> alguno sabe una mejor forma, se le ocurre alguna, o sabe como incrementar
> los campos?.
>
> gracias, buen domingo!
>
> atte, Miguel
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150524/a9aae51f/attachment.html>


More information about the pyar mailing list