【发布时间】:2022-06-14 21:14:37
【问题描述】:
我有一组 10 多种货币和 21 个地区的每小时数据。
我每个货币、每个地区、每小时插入 1 行。这意味着我每天获得 24 小时 * 10 种货币 * 21 个地区 = 5040 行数据。
我正在考虑扩展到更多货币和更多地区,听起来这将很快成为性能/空间问题。
我目前如何以 10 种货币和 21 个地区存储数据:
我的桌子:
id, val, currency_id, region_id, val_date
第一个小时,区域 1,货币 1-10:
1, 145.24, 1, 1, '2022-14-06 00:00:00'
2, 134.11, 2, 1, '2022-14-06 00:00:00'
...
10, 136.61, 10, 1, '2022-14-06 00:00:00'
第二个小时,区域 1,货币 1-10:
11, 142.54, 1, 1, '2022-14-06 01:00:00'
12, 131.21, 2, 1, '2022-14-06 01:00:00'
...
20, 133.35, 10, 1, '2022-14-06 01:00:00'
第一个小时,区域 2,货币 1-10:
241, 125.22, 1, 2, '2022-14-06 00:00:00'
242, 118.15, 2, 2, '2022-14-06 00:00:00'
...
250, 120.79, 10, 2, '2022-14-06 00:00:00'
我的担忧主要与所有这些重复的日期有关。
以下是我的一些想法:
- 创建一个单独的
dates表,并使用JOIN和date_id - 将货币硬编码为列(
eur_val、usd_val、cad_val、...) - 坚持我目前拥有的
解决这个问题的最佳方法是什么?
【问题讨论】:
-
也许您可以将历史数据保存在不同的表中
标签: mysql database-normalization