带两个代理键或两个单独尺寸的尺寸?

问题描述:

即时寻找一些尺寸建模的指导。 我正在查看以星型模式存储在数据库中的一些搜索数据。查询有一个维度,登录页面有一个维度。两个维都有一个代理键,它们作为外键存储在事实表中。带两个代理键或两个单独尺寸的尺寸?

事实表有大约100万行和每个维度具有约10万行。

由于这些表的连接正在很长最近我想知道如果这将是两个维度组合成一个,因此只能连接到一个表是一个好主意。这两个维度是M:N,所以新维度将非常庞大。

谢谢!

没有一个“正确”的答案你的问题不知道更多关于你的数据(比如你有你的事实表?多个维度如何查询和着陆页的多种组合,你呢?),但很少评论:

  • 您目前的设计(什么我可以从这里了解)也不错,你有大量的数据,你必须处理它,但组合两个维度有100K元素,以避免加入似乎并不正确,以我

  • 尝试优化您的查询,建立索引,如果你没有他们,并行化查询(如果您[R数据库引擎允许你这样做),尽量避免like在你那里如果可能的话,最后的资源想更多的硬件或不同的数据库引擎。

  • 如果你平时的查询只使用这些维度之一,也许你可以考虑一下汇总表,以减少行数,你会使用更多的空间,但您的查询将有一个连接和一个较小的事实表

  • 可以查询是登陆页面的子项吗? (即*.com像“大师沉思错误信息”和“stackcareers.com”查询父“池男孩datalake就业”的母公司)当然你会与多个目标网页相同的查询结束,您需要在这种情况下分配不同的外键。但是,这种不同的模式可能导致不同的解决方案,您将只有1:M关系,并且可以通过着陆页维度构建聚合表,但这需要更改查询以提取数据。又一次我不知道你的数据,也许它将使登陆页面更有意义查询父...

同样,这只是我的“想法”无解。