Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/05/2011, 10:03
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: dos identificadores en una tabla

Vamos desde el principio:
- Tienes dos tablas. Una de ellas guarda los Títulos; la otra guarda las Fotos. Cada una de ellas tiene su propia PK.
- Si cada foto sólo puede relacionarse con un título, la PK del título va como FK en Foto. De ese modo cuando consultas por un título obtienes las fotos que se vinculan.
- Si tu problema es que quieres numerar desde 1 en adelante para mostrar las fotos, no es necesario poner ese valor en la tabla Fotos, se puede obtener el mismo resultado sin tocar la tabla, haciendo la consulta con variables de usuario de MySQL:
Código MySQL:
Ver original
  1. SELECT T.titulo_id, (@id:=@id+1) nroFoto, T.titulo, F.nombre_archivo
  2.     titulos T INNER JOIN fotos F ON T.titulo_id = F.titulo_id
  3.     JOIN (SELECT @id:=0) I
  4.     T.titulo_id = valorbuscado;
Esa "@id" es una variable de usuario de MySQL, que existe y permanece durante la conexión, y del modo que te la pongo generaría una numeración consecutiva.
- El detalle es que esto mismo lo puedes hacer en pantalla, sin necesidad de ninguna cosa (ni campo adicional, ni variable), simplemente poniendo la numeración a medida que creas la tabla en pantalla.

Finalmente:
- Si y sólo si al menos una foto de todas las guardadas se puede relacionar con más de un título almacenado, entonces el modelo de dos tablas no sirve. Habría que usar uno de tres, porque la tercer tabla se usa para relacionar a cada título con cada foto, y de ese modo puedes tomar sólo las fotos vinculadas con un título dado, o tomar todos los títulos vinculados con una misma foto.
Eso es parte del modelo de bases de datos relacionales.

¿Hay algo que no se entienda de esto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)