如何设计架构以优化UI过滤器填充和过滤?

时间:2020-06-10 08:26:11

标签: mongodb

在RDBS中,我们有两个表:

enter image description here

在显示Users详细信息的用户界面的上下文中,如果我们希望通过company namesize进行过滤,我们可以执行快速SQL查询以获取以下格式的值:

CompanyID       CompanyName
101             Microsoft
102             Google
...

CompanyIDsCSV   Size 
101, 102        100000+
..

随着数据的标准化,预计操作会很快。

在MongoDB的上下文中,我可以使用嵌入式集合:

{
   UserID: ...
  ,FirstName: ...
  ,LastName: ...
  ,Company:
   {
      ID: ...
     ,Name: ...
     ,Size: ...
   }
}

但是为了最初将数据加载到过滤器中,我需要阅读所有文档。可以分享一下如何在MongoDB的上下文中进行优化吗?

我在想的是:

  • 嵌入数据以便立即读取我需要的所有详细信息
  • 与唯一的公司创建单独的集合,并用于填充过滤器值
  • company.id上创建索引,以便在使用过滤器时通过它进行搜索

在MongoDB文档中,有Embedded and Normalized data models的指南,但我想这样对我的数据进行建模会是个坏习惯吗?

我知道,我需要确保嵌入式集合和规范化集合之间的数据相同,但是我准备支付成本以获取最佳读取性能。

0 个答案:

没有答案