Ver Mensaje Individual
  #8 (permalink)  
Antiguo 12/05/2011, 09:35
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

Bueno, eso sería sólo si las fotos pudieran corresponder a más de un título. Perdón, lo leí a las apuradas.
Como aclaración, el modelo relacional determina que toda relación N:N entre dos entidades genera una tabla relacional que contiene las PK de ambas tablas .
En tu caso, si no se da esa situación, no es necesario y se podría resolver con una FK de la tabla Títulos en la tabla Fotos (pero si hay al menos una foto que pueda relacionarse con más de un título, tienes que pasar a tres tablas).

Ahora bien, en el caso que tu mencionas, no necesitas un segundo ID incremental por grupos o no en esa tabla. Lo que necesitas es numerar los subitems de fotos relacionados con un título determinado, y dejar que las fotos tengan su propio PK y la FK del título.
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;

Si quieres listar todas, pero numerandolas por grupo, la consulta es algo más complicada, pero se puede hacer.
Incluso ni siquiera necesitas hacer esto, porque puedes numerar una columna en la tabla cuando presentas los datos en la pantalla, en tu aplicación...
Lo importante es que tengas en cuenta que no se deben poner columnas innecesarias en las tablas. Sólo van si son atributos propios del objeto que la tabla representa, y si son calculables, no van.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)