Первый вариант возможен только в том случае, если каждая картинка принадлежит только одному альбому (n : 1), второй вариант - если одна картинка может принадлежать нескольким альбомам (n : n).
Если у вас изображения в альбомах буду часто дублироваться (вы каким-то образом будете определять при загрузке изображения, что такое изображение уже есть на сервере), то имеет смысл ввести третью таблицу - связующее звено. В этом случае при дублировании изображений в разных альбомах не будет создаваться лишняя запись в таблице изображений.
Если же такой необходимости нет и 1 изображение может принадлежать только 1 альбому, то нет необходимости вводить третью таблицу.
Вариант не плох, только я бы добавил еще папки для каждого пользователя или альбома, и убрал бы таблицу связей, прок от нее мало эффективен на небольших объемах.
В таком случае еще надо описание, название вынести в отдельную таблицу, чтобы не плодить одинаковые файлы на сервере.
Опять же - все зависит от конкретной задачи. Может дублей не будет в принципе, или их будет не больше 5%, тогда это не так страшно.