gpt4 book ai didi

database - 在数据库表中存储样本数组

转载 作者:搜寻专家 更新时间:2023-10-30 23:30:18 25 4
gpt4 key购买 nike

我每秒从一个信号中提取 100 个样本,我想将这些样本与一些其他测量数据一起存储在数据库中。

我能想到的唯一方法是创建 100 列来存储样本:

Measurement Table:                     

-------------------------------------------------------------------
| id | Time | Temp | Sample1 | Sample2 | Sample3 ... Sample100 |
-------------------------------------------------------------------
| 01 | 12:34:56 | 22.3 | 1 | 2 | 3 ... 4 |
-------------------------------------------------------------------
| 02 | 12:34:57 | 22.3 | 2 | 3 | 4 ... 5 |
-------------------------------------------------------------------
| 02 | 12:34:58 | 22.3 | 3 | 4 | 5 ... 6 |
-------------------------------------------------------------------

这种做法似乎不是最佳选择。有更好的方法吗?如果我希望以后可以选择更改样本数量怎么办?

最佳答案

您的案例从 1 对 N 关系中受益匪浅。您可能需要两个表:

create table measurement (
id bigint primary key not null generated always as identity,
time timestamp not null,
temp double not null
);

create table sample (
measurement_id bigint not null,
sample_number int not null, -- 1, 2, 3, ... 100
sample_value double,
constraing fk1_sample_meas foreign key (measurement_id)
references measurement (id)
);

measurement 上,您每秒仅插入 1 行。在 sample 上,您每秒插入 100 行,与单个测量(列 measurement_id)相关。

将来,如果你需要每秒更多的样本,你可以在 sample 中插入更多的行。该表每秒自然接受更多(或更少)的样本。无需结构改变。

注意:在每次测量中,您将插入 101 行(1 次测量 + 100 个样本)。确保使用事务 插入它们。否则,在系统不稳定的情况下,您可能会得到不完整的测量结果。

关于database - 在数据库表中存储样本数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49977039/

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