Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
传感器数据MySQL数据库结构方案(健全性检查)_Mysql_Database - Fatal编程技术网

传感器数据MySQL数据库结构方案(健全性检查)

传感器数据MySQL数据库结构方案(健全性检查),mysql,database,Mysql,Database,我有一个传感器单元网络,可以定期轮询或将(未确定的)数据推送到服务器。每个单元都有一些静态属性,以及一些我想要记录的时变读数。我主要关心的是,以下示意图实际上是可以实现的: NODE Table -> stores time varying values per node. I would also like to add a column to store references to the relevant row in the NODES table Headings -->

我有一个传感器单元网络,可以定期轮询或将(未确定的)数据推送到服务器。每个单元都有一些静态属性,以及一些我想要记录的时变读数。我主要关心的是,以下示意图实际上是可以实现的:

NODE Table -> stores time varying values per node. I would also like to add a column to store references to the relevant row in the NODES table
Headings --> TimeStamp | Voltage | Current | Temp | Humidity | RoundRobinIndex

NODES Table -> stores static properties about each node
Headings --> Serial | Latitude | Longitude | IP | OtherProps | Pointer to NODE table
这是我第一次体验MySQL(以及一般的数据库管理),所以我想在沉浸于MySQL之前检查一下这是否是一种合理的方法。我也愿意接受其他数据库工具或方法的建议


谢谢

您正在构建所谓的关系数据库。您使用的数据库管理系统完全由您选择;它们都有各自的优缺点,但总的来说,MySQL最适合PHP(以我的经验)

除此之外,为了便于您参考
节点
表中的信息,您需要在
节点
表中创建一个
节点ID

NODE Table -> stores time varying values per node. I would also like to add a column to store references to the relevant row in the NODES table
Headings --> Node_ID | TimeStamp | Voltage | Current | Temp | Humidity | RoundRobinIndex
Node\u ID
设置为主键(即允许您唯一标识表中某一行的列),可以将其作为外键(另一个表中的主键,在本例中为
节点
表)引用到
节点
表中

NODES Table -> stores static properties about each node
Headings --> Serial | Latitude | Longitude | IP | OtherProps | Node_ID
要从
节点
表中检索数据,可以使用如下SQL语句:

SELECT NODE.Node_ID, NODE.TimeStamp, NODES.Serial
FROM NODE
-- Either:
INNER JOIN NODES ON NODE.Node_ID = NODES.Node_ID
WHERE NODE.Node_ID = 2;
-- Or:
WHERE NODE.Node_ID = NODES.Node_ID
AND NODE.Node_ID = 2;

这将从各自的表中为节点ID值等于2的记录选择
节点ID
时间戳
序列

节点
表中需要一个节点ID列,我会将
节点
表重命名为类似
节点_数据
的名称,这样更清晰一些。谢谢,伙计,非常彻底:)