Foros del Web » Programando para Internet » PHP »

Id siempre consecutivos

Estas en el tema de Id siempre consecutivos en el foro de PHP en Foros del Web. Holas Alguien sabe como hacer que en una tabla de una base de datos, los id siempre sean consecutivos. o sea que cuando se borre ...
  #1 (permalink)  
Antiguo 27/08/2004, 18:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 152
Antigüedad: 21 años
Puntos: 2
Id siempre consecutivos

Holas

Alguien sabe como hacer que en una tabla de una base de datos, los id siempre sean consecutivos.

o sea que cuando se borre un registro el siguietne se ponga en su lugar, algo asi como actualizarlo.

please, ayudenme, esque los datos tienen que ser optimos
__________________
Mamani Calderón, Edwin Fredy
Ingeniería de Sistemas www.gruposistemas.com
  #2 (permalink)  
Antiguo 27/08/2004, 19:31
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 21 años
Puntos: 0
bueno me imagino qu al borrar el registro usas una instruccion ssql la cual no recuerdo, pero esa instruccion altera la tabla y puedes cambiar el id de cada registro
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #3 (permalink)  
Antiguo 27/08/2004, 20:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Vamos a ver ..

Una cosa es un "ID" (identificativo) de un registro a nivel de la Tabla (base de datos) ... y otra cosa bien diferente es un "código" que igualmente puede ser incremental y único ..

Pero, .. el hecho de que al "borrar" un registro de tu BD ese ID "salte al siguente" y no se "rellenen" los que borrastes es un tema de "integridad referencial" para tus datos.

Imagina el caso:
En una pagina tienes un link que referencia a una consulta para tu BD tipo:

muestra_registro.php?id=1

Ese registro HOY tiene una información .. ejemplo "sobre un producto: zapato rojo" ..como ese producto me interesó .. me lo guardé en mis "favoritos" (el link) .. mañana ese registro ID=1 lo borras por A o B motivo .. yo ese mismo día voy aver ese "ID=1" y ahora resulta que ya no es un "zapato rojo" sino que es "un pantalon negro" .. Lo que debería hecer un sistema normal en ese caso es decir que tal registro ya no existe.

Peor se pone cuando ese registro ID=1 relaciona a otro registro de otra tabla (clave foránea) .. (ahí tiras por tierra toda la teoría de "normalización e integridad referencial de datos")

En fin .. la solución NO es "rellenar" esos ID's vacios sino el ver o comprender para que quieres que ese "nº sea secuencial" .. por qué siempre puedes "numerar" los registros que muestras en una consulta (con un simple contador en el típico bucle que obtiene los datos de tu consulta) .. pero, internamente a efectos de "aplicar una acción sobre ese registro" (lease: borrarlo, editarlo .. etc ..) lo que manda es ese "ID".

Un saludo,

Última edición por Cluster; 27/08/2004 a las 20:46
  #4 (permalink)  
Antiguo 30/08/2004, 14:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 152
Antigüedad: 21 años
Puntos: 2
Gracias Cluster, muy didactica tu respuesta, si tienes razon, esque lo que me pidieron es hacer que un registro al ser validado su información este recien se active en las consultas. antes si se pude borrar editar cualquier cosa pero una vez validado este tiene que tener un ID sucesivo y ya no puede ser borrado ni editado.

Ese era mi problema, mi solución es ahora crear un Id pricipal y otro para mostrarlo al consultor el cual sera sucesivo una vez autentificado.

gracias......
__________________
Mamani Calderón, Edwin Fredy
Ingeniería de Sistemas www.gruposistemas.com
  #5 (permalink)  
Antiguo 30/08/2004, 15:47
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
Vaya Cluster gracias por ese tips
__________________
www.dataautos.com
  #6 (permalink)  
Antiguo 30/08/2004, 15:56
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Y para crear ese campo donde almacenes números siempre consecutivos puedes ver este post:
http://www.forosdelweb.com/showthrea...t=consecutivos

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:32.