|
Hola
primero suponemos que tienes un campo ID primary key luego añadele un campo que sea el orden crea un indice unique key para que no repita valores y vaya rapido al ordenar.
Al insertar comprueba donde estas insertando y si insertas en la posicion 50
antes deberas hacer update orden=orden+1 de todos los registros con orden>=50.
si quieres al hacer delete del registro 50 puedes hacer update orden=orden-1 de todos los registros con orden>=50.
Tambien si cambias de lugar el registro debes hacer los updates correspondientes.
Todo esto lo puedes montar con codigo delpho o bien con los triggers de la BD before_insert,before_update,after_delete.
Yo lo utilizo para ordenar las linias de un albaran tal como las meta el usuario
entonces la tabla linias_albaran tiene el UK que es Cabecera_albaran_id+orden; con un Id como PK
Otra solucion que yo utilize pero que no me gusta es que el campo orden sea double precision y asignarle siempres el valor medio entre su anterior y posterior registro.
Espero haberte podido ayudar
|