Правильная схема данных NoSQL для веб-фотогалереи

Я ищу создание подходящей структуры данных для 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.) Как будет выглядеть хранилище? Как будет работать индексация?

20
задан aF. 3 February 2012 в 11:24
поделиться