Laden...

Messwert mit verschiedener Datentypen in der Datenbank in einer Spalte

Erstellt von sindibad vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.184 Views
S
sindibad Themenstarter:in
110 Beiträge seit 2012
vor 4 Jahren
Messwert mit verschiedener Datentypen in der Datenbank in einer Spalte

verwendetes Datenbanksystem: <Oracle>
Hallo Zusammen,

ich habe eine Messdatenbank erstellt in der unter anderen Messwerte gespeichert werden. die Messwerte könnten in verschiedene Datentypen sein wie Strings, Zahlen oder von type dword für Masken.

im Moment habe für den Messwert eine einzige Spalte definiert in der Datenbank von type VARCHAR2(256 BYTE) und die Applikation muss nach dem Lesen aus der Datenbank den Wert in den richtigen/erwarteten Typ konvertieren.

es gibt ein zweites Konzept: ich definieren für jeden Messwert-datentyp eine nullable Feld in der Datenbank z.B: Messwert_number, Messwert_String und Messwert_Mask und die Applikation muss den Wert nicht konvertieren. aber ich muss immer wissen in beiden Fällen welchen DatenTyp der Messwert hat oder ?

wie würdet ihr diesen Problem lösen oder was ist der bessere Einsatz?

P
441 Beiträge seit 2014
vor 4 Jahren

Hi,

kommen deine Messwerte Deterministisch und ist fix, welche Werte kommen?
-> Lege eine spezialisierte Tabelle an, mit je einer Spalte pro Messwert

kommen deine Messwerte nicht Deterministisch oder ändert sich die Zusammenstellung der Werte
-> Lege mehrere Tabellen an, je Datentype ein.

An und für sich klingt das aber eher nach einer Aufgabe für eine NoSQL Datenbank.

Edit:
Ob das sinnvoll ist kommt natürlich darauf an, was du im Anschluss mit den Daten machen willst.

S
sindibad Themenstarter:in
110 Beiträge seit 2012
vor 4 Jahren

Hallo,
Danke für die Antwort.

hier nochmal ein Beispiel:
ein Messwert kann einen Spannungswert sein z.B. 3.5 oder in einem anderen Record ein string z.B. "OK"
die Tabelle verweist auf andere Tabellen und hat unter anderen folgende Spalten:
ID = laufenden Nummer
Value = Messwert (im moment als varchar(250))

ID - value
1 - 3.5
2 - "OK"
3 - 4
4 - "Test"
....

eine andere Möglichkeit wäre eine weitere Spalte wo der type festgehalten wird (1= numebr, 2= string ...)
hat Vorteile beim Auswerten und sortieren.

16.807 Beiträge seit 2008
vor 4 Jahren

Alle Werte in eine relationale Tabelle zu schieben ist totaler Quatsch.
NoSQL ist für solche Fälle konzipiert oder eben mehrere Tabellen.

In allen Fällen muss dein Code aber die Informationen zum jeweiligen Datentyp haben.
Egal wie du das Blatt drehst und wendest: Hellsehen kann der Code niemals.

S
25 Beiträge seit 2014
vor 4 Jahren

Also aus der Sicht vom Datenbankdesign macht das überhaupt keinen Sinn alles in einer Tabelle zu schreiben. Normalerweisse weisst du ja was du misst.

Am besten machst du für jede Einheit eine separte Tabelle. So hast du beispielsweise eine Tabelle Für Spannung die meintetwegen 2 Spalten hat eine ID und eine Spannung. Das machste dann für jede Messgröße.