Моделирование модели данных для базы данных документов - PullRequest
0 голосов
/ 09 декабря 2010

Я начинаю с Raven DB и пытаюсь обернуть голову вокруг другой парадигмы модели документа ...

Как бы вы структурировали следующее, имея возможность доступа к одному событию за раз, перечисляя Альбомы, а внутри него перечисляя Изображения.
Также мне нужно иметь лайтбокс, хранящий отдельные изображения из разных альбомов.

+ Event
  + Album
    + Image
    + Image
  + Album

Я пытался отработать свои корневые агрегаты, но как бы я их ни структурировал, я получаю Events, Albums и Images, все в качестве элементов верхнего уровня, потому что мне нужно обращаться к ним отдельно. Однако это похоже на прямую копию реляционной схемы, которая не очень полезна.

Как бы вы это структурировали?

1 Ответ

1 голос
/ 18 марта 2011

Я бы сохранил изображения в виде вложений. Это предполагает, что нет метаданных, которые должны быть сохранены с изображениями. Затем в каждом альбоме я просто сохранял бы ссылки на изображения.

Я не совсем уверен, что означает "событие" в этой модели. Имеет ли документ альбома какое-либо значение вне события? Если нет, то я бы просто имел документ с целым графиком. Я предполагаю, что это не тот случай, и вы хотите получить доступ к альбомам вне контекста событий.

Следующий вопрос, можно ли определить событие из документа? Если так, то я бы не стал моделировать событие вообще, а просто позволил бы определить его как часть индекса. Опять же, я предполагаю, что это не дело.

Если два действительно разделены, то на ум приходят два оставшихся варианта.

  1. Просто дублируйте данные альбома, когда событие сохраняется. Особенно, если данные альбома редко меняются.

  2. Сохраняйте альбомы в виде ссылок и используйте их при получении.

...