Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2006, 20:16
dreglad
Invitado
 
Mensajes: n/a
Puntos:
Ordenar datos arbitrariamente

Tengo la siguiente duda:

Estoy construyendo un CMS (PHP), en el cual, quiero que los usuarios puedan elegir libremente el orden en que se despliega la información de cierta tabla en una base de datos (MySQL).

Me explico con un ejemplo, supongamos que tengo esta tabla:

|------------------------------|
|--id --Nombre--Apellido---|
|------------------------------|
|--1------Juan-------Pérez--|
|--2------Perdo-----Gómez-|
|--3------Raúl------López---|
|------------------------------|

Haciendo la consulta, obtengo los datos en el orden:
1 - Juan
2 - Pedro
3 - Raúl

Ahora, si por cualquier razón, el usuario quiere que "Pedro" esté en primer lugar, independientemente del orden alfabético o el orden en que fueron introducidos los datos, no hay ninguna consulta (SQL) que resuelva eso.

La idea es darle al usuario la posibilidad de "subir" o "bajar" un registro de lugar.

Una idea que tuve, fue de agregar una tercer columna, llamada por ejemplo "view_index", en la cual asigno el orden que tiene cada elemento (1,2,3,...)

Sin embargo, esta solución supone que para subir o bajar de posición un registro, hay que modificar el "view_index" de TODOS los demás registros, además que el cálculo del valor de dicho campo es muy pesado

Se me ocurre que dicha información de orden, no esté en la base de datos, sino en otro lugar, a lo mejor en forma de un arreglo...


¿Alguien conoce un método efectivo para hacer esto?



Gracias de antemano por cualquier ayuda.

P.D.
Probablemente este post encaje más en el foto "Bases de datos", pero como busco una solución orientada a PHP, decidí ponerlo aquí.