gpt4 book ai didi

database-design - 数据库设计 : where to place the total amount fields

转载 作者:行者123 更新时间:2023-12-04 07:16:16 24 4
gpt4 key购买 nike

我正在设计一个跟踪订单的应用程序。每个订单可以有 > 1 个工作项,每个工作项可以有单独的价格。

我将 workItem 的价格存储在 workItem 表中,认为在 UI 或报告中,收集工作成本(向客户收费并支付给承包商)将通过查询现有数据来计算工作项目表。

保持这种方式或将总金额存储在 Order 表中是否有意义?如果我选择后者,数据不是多余的吗?也许这样的举动是有性能考虑的。你怎么认为?

最佳答案

这取决于您的数据库的使用方式。

理想的解决方案是将单独的项目保留在您的工作项目行中。这样您就可以避免数据重复。例如,当您添加或更新工作项时,您将不得不同时更新工作项和总数。

使用适当的索引,这样的查询通常是高性能的:

SELECT i.*, SUM(wi.amount) total
FROM invoice i
JOIN workitem wi ON i.invoice_id = wi.invoice_id
GROUP BY i.invoice_id

话虽如此,如果您发现性能问题,您可能会非规范化您的数据模型并存储总数。但只有在需要时才走那条路。在我看来,不应该先发制人。

关于database-design - 数据库设计 : where to place the total amount fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634300/

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