【发布时间】:2021-09-28 00:46:58
【问题描述】:
有两个表——用户和订单:
| id | first_name | orders_amount_total |
|---|---|---|
| 1 | Jone | 5634200 |
| 2 | Mike | 3982830 |
| id | user_id | order_amount |
|---|---|---|
| 1 | 1 | 200 |
| 2 | 1 | 150 |
| 3 | 2 | 70 |
| 4 | 1 | 320 |
| 5 | 2 | 20 |
| 6 | 2 | 10 |
| 7 | 2 | 85 |
| 8 | 1 | 25 |
这些表由用户 ID 链接。任务是为每个用户显示他所有订单的总和,可能有数千个(订单),可能有数万个,同时可能有成百上千的用户同时发出请求。有两种选择:
- 对于每个新订单,除了写入 orders 表之外,增加 orders_amount_total 计数器,然后简单地显示给用户。
- 移除 orders_amount_total 字段,并使用表 JOIN 显示所有订单的总和,并使用 SUM 运算符计算特定用户的所有订单的总和。
哪个选项更好用?为什么?为什么另一个选项不好?
附:我认为第二个选项简洁正确,因为数据库是关系型的,但是对服务器的负载有强烈的怀疑,因为计算量时的样本即使对于一个用户来说也很大,而且数量很多.
【问题讨论】:
-
如你所说,可能有数千个(订单),可能有数万个,同时可能有成百上千的用户同时发出请求,我会建议更新用户表。
标签: mysql join sum relational-database