Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/08/2004, 20:44
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 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