建模文档数据库的数据模型

时间:2010-12-09 14:53:09

标签: database-design modeling datamodel ravendb

我开始使用Raven DB,并试图围绕不同的文档模型范例...

如何构建以下内容,同时能够一次访问一个事件,列出相册,并在其中列出图像。
此外,我需要一个灯箱,存储来自不同相册的单个图像。

+ Event
  + Album
    + Image
    + Image
  + Album

我尝试计算出我的根聚合,但是无论如何构建它,我最终得到EventsAlbumsImages,所有这些都是顶层元素,因为我需要单独解决它们。然而,这似乎是来自关系方案的直接副本,这实际上并不实用。

你会如何构建这个?

1 个答案:

答案 0 :(得分:1)

我会将图像存储为附件。这假设没有需要与图像一起存储的元数据。然后,在每张专辑中,我只会将网址存储到图像中。

我不确定这个模型中“事件”的含义。专辑文档在事件之外是否有任何意义?如果没有,那么我只会有一个包含整个图表的事件文档。 我猜不是这种情况,并且你想要在事件的上下文之外访问专辑。

接下来的问题,是否可以从文档中推断出事件?如果是这样,那么我根本不会对事件建模,只是将它定义为索引的一部分。再一次,我猜这是的情况。

如果这两者真的是分开的,那么可以想到剩下的两个选择。

  1. 只要事件持续存在,只需复制相册数据即可。特别是如果专辑数据很少改变。

  2. 将相册存储为链接,并在检索时使用包含。