我正在从事一个项目,该项目存储了多个行业的大量数据。
我的任务是设计数据库模式。
我需要让数据库模式变得灵活,这样它才能处理复杂的数据报告。
例如,
what products are trending in industry x
what other companies have a similar product to my company
how is my company website different to x company website
可能会有各种各样的报告。现在一切都很模糊。但我知道报告必须要快。
我认为我的最佳途径是尽可能多地创建关联表,这是正确的吗?例如,如果产品表链接到行业表,则可以相对容易地获取某个行业的所有产品,而不必通过其他表的连接来尝试与数据建立连接。
不过,这看起来很疯狂。模式将变得如此庞大和复杂。
请告诉我我所做的是否正确,或者是否有其他已知的解决此问题的方法。也许解决方案是雇佣一位数据科学家或DBA,他们的工作就是做这类事情,而不是让程序员来做。
谢谢。
发布于 2016-03-22 20:03:57
我认为从关系/操作数据库中获取这些类型的答案将非常困难,并且查询将非常缓慢。我认为最好的方法是创建多维数据结构(换句话说,数据仓库),其中您将拥有扁平化的数据,这将比关系数据库更容易查询。它还将拥有用于趋势分析的历史数据。
如果需要复杂的统计或预测分析,那么数据科学家可以使用数据仓库作为他们的源。
发布于 2016-03-22 20:34:15
除了上面Amit的回答之外,问题是,您需要从事务数据库中获得高度规范化的事实关联,以实现操作目的。对于分析方面,您需要的是有效标记的事实。
换句话说,您需要的是一系列星型模式,您可以在其中添加任何您想要的关联。
https://stackoverflow.com/questions/36153612
复制相似问题