gpt4 book ai didi

mysql - 必须插入一条记录,然后更新同一记录保证 1 :1 relationship design?

转载 作者:行者123 更新时间:2023-11-29 03:50:43 25 4
gpt4 key购买 nike

假设一个 Order 有许多 Line 项目,我们在订单中存储一个订单的总成本(基于订单行的价格总和)表。

--------------
orders
--------------
id
ref
total_cost
--------------

--------------
lines
--------------
id
order_id
price
--------------

在一个简单的应用程序中,订单和行是在结帐过程的同一步骤中创建的。所以这意味着

INSERT INTO orders .... 

-- Get ID of inserted order record
INSERT into lines VALUES(null, order_id, ...), ...

我们在创建订单记录后获取订单 ID 的位置。

我遇到的问题是试图找到存储订单总成本 的最佳方式。我不想必须

  1. 创建订单
  2. 在订单上创建行
  3. 根据行计算订单成本,然后更新订单表中在 1. 中创建的记录

这意味着初学者订单上的可空 total_cost 字段...

到目前为止,我的解决方案是使用一个与 orders 表具有 1:1 关系的 order_totals 表。但我认为这是多余的。理想情况下,由于计算总成本(订单行)所需的一切都在数据库中,我会在每次需要时计算出该值,但这是非常昂贵的。

你有什么想法?

最佳答案

我认为最好不要有订单总计列或表格。

只需在需要显示它们时通过汇总行记录来计算订单总计。想象一下,如果行记录发生变化,那么您将不得不不断地维护另一个列或表来更新订单的总价。

关于mysql - 必须插入一条记录,然后更新同一记录保证 1 :1 relationship design?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252783/

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