【发布时间】:2012-06-30 23:01:49
【问题描述】:
我有一个 MySQL 数据库,用于保存来自多个不同传感器的温度读数。我最初想使用三个不同的表来存储我的数据:
mysql> select * from sensor_info;
+----+------------------+------+--------+
| id | address | name | active |
+----+------------------+------+--------+
| 1 | 28D684CD02000057 | NULL | 1 |
| 2 | 28099B49030000D8 | NULL | 1 |
| 3 | 28339ACD0200004B | NULL | 1 |
+----+------------------+------+--------+
mysql> select * from data_period limit 4;
+----+---------------------+
| id | ts |
+----+---------------------+
| 1 | 2012-06-30 09:35:02 |
| 2 | 2012-06-30 09:36:22 |
| 3 | 2012-06-30 09:37:46 |
| 4 | 2012-06-30 09:40:36 |
+----+---------------------+
mysql> select * from data_points limit 4;
+----+-------------+-----------+-------+
| id | data_period | sensor_id | data |
+----+-------------+-----------+-------+
| 1 | 1 | 1 | 77.90 |
| 2 | 1 | 2 | 77.34 |
| 3 | 1 | 3 | 77.56 |
| 4 | 2 | 1 | 78.01 |
+----+-------------+-----------+-------+
我想要做的是获取我存储的数据并将其放入 CSV 文件中,以便我可以使用 dygraphs Javascript library 显示它。我需要把我的数据变成这样的格式:
date,temp1,temp2,temp3
2012-06-30 09:35:02,77.90,77.34,77.56
2012-06-30 09:36:22,78.01,77.36,77.59
....
我开始执行此操作的每一种方式(使用 PHP),似乎都使这变得过于复杂,并且必须将查询放在循环内的循环内。我是否让自己变得比我需要的更难?
大部分工作是使用查询还是使用 PHP 完成?以后,我还想添加代码,如果特定时间戳中缺少温度读数,则会在 CSV 中放置 NULL。
我不是在寻找一个非常具体的答案,我只是想知道我应该往哪个方向走。我什至不知道如何开始格式化数据库中的数据,或者我是否应该尝试查看不同的格式来将我的信息存储在数据库中。
【问题讨论】: