Foros del Web » Programando para Internet » PHP »

Como hago esto con los ID ??

Estas en el tema de Como hago esto con los ID ?? en el foro de PHP en Foros del Web. HOla a todos: Tengo una tabla en MySQL y en un campo ID de tipo UNSIGNED AUTOINCREMENT y NOT NULL y lo que quiero hacer ...
  #1 (permalink)  
Antiguo 29/09/2003, 17:14
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Como hago esto con los ID ??

HOla a todos:
Tengo una tabla en MySQL y en un campo ID de tipo UNSIGNED AUTOINCREMENT y NOT NULL y lo que quiero hacer es que cuando yo entre una ID que quiera borrar las demas se me actualizen de manera que no me queden espacios. Por ejemplo si tengo 500 ID y quiero borrar el ID = 400 entonces todos los que estan detras de ese se me debian correr un numero hacia atras de manera que el 401 ahora sea el 400 para que no me quede feo a la hora de mostrar los datos. Pense en restarle 1 al campo ID pero como se cual es el ID desde el cual debo empezar a realizar la accion de quitar 1 y despues actualizar la tabla.

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 29/09/2003, 17:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Eso no es posible tal y como estan pensados los autoincrements. Estan pensados para mantener las relaciones con otras tablas. Imaginate en tu caso, tendrian que actualizarse en cascada todos los registros de otras tablas que este unidos a los de esa tabla por ese ID. Y como MySQL no contempla las actualizaciones en cascada, pues esa actualizacion no se realizaria.

No se si me he explicado claramente.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 29/09/2003, 17:38
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Si pero ...

Si Josemi yo entiendo lo que dices pero ese campo Autoincrement no lo hice con la intención de relacionarlo con otras tablas (incluso no se como hacerlo) lo hice con la intencion de mantener organizadas las noticias y sacarlas de la base de datos por un ID que es mucho mas facil. SI tienes alguna otra sugerencia.
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 03/10/2003, 23:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Como bien explicó josemi .. los "ID" autonuméricos son "únicos" para eso mismo .. para "mantener la integridad referencial".

Imagina el caso típico ..

Tienes un artículo en el ID=400 .. lo has publicado X dias en tu web .. a mi me gustó y me lo guardé en mis favoritos .. Mañana vas tu y me "corres" el ID=400 por que lo borrastes .. YO pasado mañana entro a tu web a seguir leyendo mi ID=400 y .. "voalá" .. que pasó? .. no es mi artículo? :waaaa:

Si no quieres tener artículos tipo ID=300 .. (siguiente correlativo ->) ID=305 (por qué borrastes los ID 301,302,... etc) .. NO uses el ID como referencia de tus artículos .. usa un "nombre" u otra cosa que sea "UNICO" (esto es importante .. que mejor que un número incremental para que ya sea único? ..)

id=cosas
id=nose
id=blabla

Si no tienes muchas noticias no te será facil buscar nombres "coherentes" o no tan coherentes (tal vez un "psudo-codigo alfanumérico aleatorio" .)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 11:17.