2010-05-25 113 views
0

我是一个RDBMS家伙,他有一个我相信在MongoDB系统中工作得很好的项目。出于不同的原因,我认为这与手边的问题无关。设计一个MongoDB解决方案?

无论如何,我的系统将是类似如下:

 
Properties Available 
    Houses 
    House A 
     123 Pine Street 
    House B 
     456 Main Street 


Realtors 
    Sale 
    Leads 
     Properties 
     House A 
      123 Pine Street 
     People Involved 
     Moe Howard 
     Larry Fine 
     Shemp Howard 
    Budgets 
     Operating Budget Items 
     $200 rentals 
     $400 supplies 

正如你所看到的,我有两个集合。其中一个(“可用属性”)将在不同来源的不同时间生成,并将在任意数量的用户中共享。大部分内容将是静态的,不会经常更改。

其他收集是“房地产经纪人”。

现在,在我的旧RDBMS世界中,我将创建潜在客户,人员,预算等表格。 但是,我认为将所有信息保存在一个巨大的“记录”中会更好。 “销售”记录将在一段时间内(也许是几周)开始工作,然后关闭。对我来说,将所有内容都保存在一个记录中是非常棒的。尤其是因为会存储非常普遍且动态的信息,例如网站,笔记,照片等。

我是否正确地使用正确的思维模式来解决这个问题?我很难放弃关系模型。

感谢您的任何建议和提示。

回答

1

不能回答是或否,这是最适合您数据的设计。你描述了你想要存储的项目,但不是你打算如何查询它。

关系模型非常适合设计具有最小冗余的存储,并支持最广泛的查询。

面向文档的模型非常适用于优化特定的查询。但是您需要事先知道哪些类型的查询需要最高效。

请参阅TANSTAAFL

+0

感谢您的快速回复。 我没有看到查询是非常复杂的。事实上,我发现他们大部分时间都很简单。在上面的例子中,用户(如Moe或Shemp)会查询特定的销售,然后深入到涉及的财产等等。我认为文档模型适合,因为一切都与销售和销售完成,那么很少需要重新使用与该销售有关的任何数据。 – cbmeeks 2010-05-25 16:42:31