我有一个 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 完成?以后,如果特定时间戳中缺少温度读数,我还想添加将 NULL 放入 CSV 的代码。
我不是在寻找一个非常具体的答案,我只是想知道我应该往哪个方向走。我什至不知道如何开始格式化数据库中的数据,或者我是否应该尝试使用不同的格式将我的信息存储在数据库中。