【发布时间】:2018-01-29 22:39:02
【问题描述】:
尝试获得处理书籍“我喜欢”多少次的最佳实践。假设现在,我有很多系列的书,每个系列都可以有很多书。现在,当人们对一本书点击“我喜欢”时,我想给这本书加 1,同时也给系列加 1,以便稍后我可以相应地渲染这些数字。现在,我在两个方面苦苦挣扎。
1)当点击一本书时,我会在 book 表的“liked”列上加 1,同时在 series 表中的“liked”列上加 1。
2)当点击一本书时,我只在书表的“喜欢”列上添加 1。当我尝试渲染该系列的编号时,我会在属于该系列的书籍的“喜欢”列上进行 SUM。
不过,两者各有利弊。 1) 方式,当我尝试显示有多少人喜欢整个系列时,我可以简单地获取系列表的“喜欢”列。这将比 2) 方式有效,因为不需要聚合,尤其是当许多人尝试渲染系列页面时。但是,当我们单击“我喜欢”按钮时,这将需要更多的努力。因为即使人们点击不同的书。只要这些书属于同一系列,就需要更新系列的编号。这将是并发过程。相反,如果当人们点击“我喜欢”这本书时,我没有在系列表上进行更新。在那个级别上它会更有效,但是当许多人尝试加载相同的系列页面时会浪费大量的精力来进行冗余聚合计算,其中显示了该系列的“喜欢”数字。
还有其他想法吗?如果不是,有什么更好的解决方案? 1)还是2)?提前致谢。
【问题讨论】:
标签: java performance processing-efficiency