我需要帮助来选择建模解决方案。用于计算一对多关系查询的最佳建模
我有一个表A,其中涉及到表B中的许多其他人。例如:文本(A)和收藏它的用户(B)或产品(A)x评论(B)。
所以...我想知道有多少人收藏了文本或查看了产品。好吧,这很简单,只是这种情况只有一个查询,但当我开始加入更多表时,可能会变得复杂。例如,要查找包含在评论+产品中的评论+照片的评论+照片的平均值,而没有评论,以及评论相关的时候,但仍然因适度而受阻的用户名等。
不过,这是可以做到的,一个查询,我知道,但是...
它是一个更好的解决方案。如果表A有一栏只是为了计算有多少条记录在表B中有关系吗? Like Favorite_Count,review_count,review_avg,...
这会在复杂的查询中“保存连接”,以换取只有一点点编码,当有人喜欢或不喜欢的东西。最后,查询会更容易阅读,并且可能更快,对吗?
您认为如何?
我害怕以这种方式在表格中存储汇总数据。如果你的应用程序行为不端,会有人不得不说,嘿这些数字不匹配,那么你需要一个过程来确保它们匹配,接下来你将管理聚集器运行多久以纠正不良应用程序写入,与此同时,其他应用程序正在网上购买,这些应用程序会为您的聚合带来自己的问题。 GROUP BY和INNER JOINS是你的朋友。也许你可以看看一个只读数据库,报告可能会跑掉并在那里展平你的数据。 –
我看到卡米尔的观点,并在极重读取的情况我能理解的管理更新的信息到您的基表的复杂性被认为的,但我会和罗斯,通常是不需要的并发症,只是为失败的另一点侧。另外,如果你想同时得到详细数据和聚合技术,如分区窗口功能,并将它与正确的索引和优化APPLY能保持读取,即使在高需求的情况下快速 – Matt
是的,我同意了一下你。但是由于系统不会从外部输入输入,所以从API或其他系统不会有更新错误。但无论如何这是一个好点。 不过,要在现实中的例子来看看。这就是我想要做的,它是很难:http://stackoverflow.com/questions/40346096/designing-and-querying-product-review-system 我要考虑封锁和隐藏的审查和产品无评论,除了计算外,还可以对评论进行平均(只有那些未被阻止和隐藏的评论)。 因为我不是一个SQL专家,它ishard给我。 :( – mEba