0

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

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 之前检查这是一种合理的方法。我也愿意接受其他数据库工具或方法的建议。

谢谢

4

1 回答 1

0

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

除此之外,为了让您参考表中的信息NODES,您需要Node_ID在表中创建一列NODE

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_ID为主键(即允许您唯一标识表中的行的列),您可以将其作为表中的外键(来自另一个表的主键,在本例中为NODE表)引用NODES

NODES Table -> stores static properties about each node
Headings --> Serial | Latitude | Longitude | IP | OtherProps | Node_ID

要从NODES表中检索数据,您可以使用如下 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;

这将从它们各自的表中为 Node_ID 值等于 2 的记录选择Node_ID和。TimeStampSerial

于 2013-02-26T01:44:44.603 回答