对于各种页面加载和其他后端任务,我有许多需要的属性,我正在讨论是将这些内容存储在数据库中还是动态计算它们。
例如,如果有用户可以上传的文件,并且您希望跟踪这些文件的大小、占用的空间、格式等,那么最好只计算一次这些内容,并将它们与文件在数据库中的位置一起存储,还是每次都抓取文件并手动获取文件属性?
另一个用例是购物车项目。是计算商品的价格并将其与购物车表一起存储在一行中,还是每次加载页面时计算给定的价格更好。在这种情况下,基于站点范围内的销售、折扣、加价等对价格的更改不会在项目添加到购物车后反映出来,除非在应用销售/折扣/加价时通过其他方法更新价格。这不是最好的例子,但希望你能理解这个想法;也许你有更好的例子。
在这两个例子中,源材料都可以得到答案,而答案是问题的关键。很明显,一个页面的每次加载都会有很大的开销,这取决于具体情况,但是另一个页面似乎对数据库完整性的依赖性较低,以确保它始终是准确的和最新的(我认为我更喜欢这样)。我不是在寻找一个具体的答案,因为我相信这将取决于许多变量,但我在寻找一个最佳实践或方法,以确定最佳解决方案。
note:this is 一个类似的问题,但得到很少的回应,没有答案。
1条答案
按热度按时间3vpjnl9f1#
两者之间可以有取舍
当用户在等待时,经过的时间非常关键。
用户最多可以获得第二个定价信息。
如果用户订购了一些东西,却在提交订单之前发现您缺货了,那么他会很沮丧。
我们不能说在你的系统中重新计算的速度有多快。如果你有一些sql代码,我们可以帮助你加速。
有时在计算机科学中,当事物发生变化时,计算速度更快;有时,请求时计算速度更快。听起来你的情况是,当它被请求时,计算起来也比较慢。如果不是“太慢”,那么这个选择可能是可行的。