Hallo zusammen,
ich bin noch immer mit meiner DB für meine Sensoren und deren Messwerte beschäftigt.
Ich habe vor drei Tabellen zu erstellen.
Die Erste, Sensoren, sieht so aus:
Die Zweite, Referenz_Messwerte, sieht so aus:
Die Dritte, Gemessene_Messwerte, soll über ein Shellscript mit den gemessen Werten gefüllt werden und mit Hilfe des Zeitstempels partitioniert werden. Wie eine Partition in PG erstellt wird hat mir akretschmer schon gezeigt.
Jetzt möchte ich sicherstellen das die übermittelte Sensor_ID zu einer ID aus der ersten Tabelle Sensoren passt um dann mit dem richtigen Referenzwert vergleichen zu können.
Wenn ich jetzt versuche die dritte Tabelle zu erstellen gibt es eine Fehlermeldung.
Dritte Tabelle:
Fehlermeldung:
Ist hier der TS als Primärschlüssel schon ausreichend?
Mein gedankliches Problem ist, das ich zweimal eine Sensor_ID in der DB habe. Einmal die aus der Tabelle Sensor und einmal in der Tabelle gemessene Werte. Kann ich diese zwei Sensor_IDs getrennt betrachten? Habe ich dann nicht das Problem der Redundanz? (In der Tabelle gemessene Werte kann ein Sensor beliebig oft vorkommen.)
Sicherstellen das die Sensor_ID des gemessenen Wertes zur ID der Referenzmesswerte passt, würde ich über eine weitere Tabelle mit Fremdschlüsselbeziehung zwischen der übermittelten Sensor_ID und der id_Referenz_messwert wenn, ich die Sensor_IDs getrennt betrachten darf.
Kann mir jemand meinen Knoten auflösen?
Gruß
ich bin noch immer mit meiner DB für meine Sensoren und deren Messwerte beschäftigt.
Ich habe vor drei Tabellen zu erstellen.
Die Erste, Sensoren, sieht so aus:
Code:
=# CREATE TABLE sensoren( id_sensoren serial NOT NULL PRIMARY KEY,
sensor_typ varchar(45) NOT NULL,
ueberwachte_komponente varchar(45),
zusatzinformationen text);
Code:
# CREATE TABLE referenz_messwerte(
id_referenz_messwert serial NOT NULL PRIMARY KEY,
messreihe_messpunkt numeric(10) NOT NULL,
messreihe_wert numeric(10,3),
verschleissteile_id_verschleissteil integer REFERENCES verschleissteil (id_verschleissteile));
Jetzt möchte ich sicherstellen das die übermittelte Sensor_ID zu einer ID aus der ersten Tabelle Sensoren passt um dann mit dem richtigen Referenzwert vergleichen zu können.
Wenn ich jetzt versuche die dritte Tabelle zu erstellen gibt es eine Fehlermeldung.
Dritte Tabelle:
Code:
# CREATE TABLE gemessene_messwerte(
ts timestamp,
id_gemessener_messwert serial NOT NULL,
topic_messpunkt numeric(10) NOT NULL,
topic_vorgangsnummer numeric(5),
wert numeric(10,3),
sensoren_id_sensor integer REFERENCES sensoren (id_sensoren)) partition by range(ts);
Fehlermeldung:
Code:
FEHLER: Fremdschlüssel-Constraints auf partitionierten Tabellen werden nicht unterstützt
ZEILE 1: ...), wert numeric(10,3), sensoren_id_sensor integer REFERENCES...
Mein gedankliches Problem ist, das ich zweimal eine Sensor_ID in der DB habe. Einmal die aus der Tabelle Sensor und einmal in der Tabelle gemessene Werte. Kann ich diese zwei Sensor_IDs getrennt betrachten? Habe ich dann nicht das Problem der Redundanz? (In der Tabelle gemessene Werte kann ein Sensor beliebig oft vorkommen.)
Sicherstellen das die Sensor_ID des gemessenen Wertes zur ID der Referenzmesswerte passt, würde ich über eine weitere Tabelle mit Fremdschlüsselbeziehung zwischen der übermittelten Sensor_ID und der id_Referenz_messwert wenn, ich die Sensor_IDs getrennt betrachten darf.
Kann mir jemand meinen Knoten auflösen?
Gruß