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_IDNODE

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_IDTimeStampおよびSerialがそれぞれのテーブルから選択されます。

于 2013-02-26T01:44:44.603 に答える