gpt4 book ai didi

mysql - 保存预先计算和计算的数据 VS 预先计算的数据并在检索时计算它们

转载 作者:行者123 更新时间:2023-11-30 23:03:12 27 4
gpt4 key购买 nike

我是设计数据库的新手,我有包含大量计算数据的表。

劳动表

table columns | formula

labor_code
job_desc
hourly_wage
daily_wage = hourly_wage * 8
monthly_wage = hourly_wage * 208
benefit_1 = daily * ( 5/12)
benefit_2 = monthly_wage / 12
benefit_3 = there is a range of monthly_wage for a specific value to this
benefit_4 = value given by the user
benefit_5 = value given by the user
total_hourly_rate = hourly_wage + benefit_(1-5)
total_daily_rate = total_hourly_rate * 8
total_monthly_rate = total_hourly_rate * 208

Material 表

table columns | formula

material_code
material_desc
brand
unit
base_price = user input
hauling_cost = user input
labor_code
labor_type = its either ful or basic
labor_rate = if labor type == ful ? labor_rate = labor.hourly_wage : labor.total_hourly_rate
total_price = base_price + hauling_cost + labor_rate

鉴于上面的表格,应用程序的 future 规范也将有表格,计算数据将基于上面的值。

我想知道将所有数据(包括计算数据)保存到数据库的更好方法,还是我应该在检索数据后以编程方式保存预先计算的数据和计算数据(即 total_hourly_rate)?

如果我的问题不清楚,请发表评论,以便我解决。

最佳答案

我们在这里真正讨论的是缓存计算结果。因为,你看,你在帖子中没有提到的权衡之一是,例如,每次你必须更新 hourly_wage 你也必须更新 daily_wagemonthly_wage 因为它们是派生的。

所以这真正归结为可能是您必须自己回答的问题:

  • 我是否希望数据库写入的成本更高?

-- 或者 --

  • 我是否希望应用程序运行时间更昂贵?

(我说“应用程序运行时”是因为从您的问题中不清楚您的应用程序层是什么样的,即最终将使用这些计算的结果。)

当应用程序运行时是关键任务时,您希望数据库写入成本更高,例如一个高负载网络服务器,其中大部分数据库操作都是读取

当不需要极度优化或数据库空间非常宝贵时,您希望应用程序运行时更加昂贵。您的特定用例中的计算不会花费太多时间(毕竟只是简单的乘法和除法),但如果这是一个网络应用程序,肯定会增加页面加载时间。

话又说回来,如果它是一个网络应用程序,则可能有比您必须自己维护的缓存选项更好的可用缓存选项。

关于mysql - 保存预先计算和计算的数据 VS 预先计算的数据并在检索时计算它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024848/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com