Я ищу создание подходящей структуры данных для NoSQL-хранилища фотогалереи. В моем веб-приложении фотография может быть частью одного или нескольких альбомов. У меня есть опыт работы с MySQL, но почти нет опыта работы с хранилищем "ключ-значение".
С MySQL я бы создал (3) таблицы следующим образом:
photos (photo_id, title, date_uploaded, filename)
albums (album_id, title, photo_id)
album_photo_map (photo_id, album_id)
А затем, чтобы получить список из 5 последних фотографий (с данными альбома), запрос вроде этого:
SELECT *
FROM albums, photos, album_photo_map
WHERE albums.album_id = album_photo_map.album_id AND
photos.photo_id = album_photo_map.photo_id
ORDER BY photos.date_uploaded DESC LIMIT 5;
Как бы я выполнить аналогичный запрос, используя базу данных пар ключ-значение NoSQL? (В частности, DynamoDB от Amazon.) Как будет выглядеть хранилище? Как будет работать индексация?