Spektren in Datenbank abspeichern - Spektren unterschiedlich lang
-
Hallo, ich bin gerade dabei eine Datenbank zu modellieren, in der Spektren abgespeichert werden sollen. Jedoch stehe ich vor dem Problem, dass die Spektren in unterschiedlichen Größen vorliegen können. Folgende parameter exsitieren dabei.
Datensatz 1
Schrittweite 10Nm
Anfang 380nm
Ende 780nmn
Datensatz: 0,3 ; 0,6;0,1.... (31 Datensätze von 380 bis 780)Datensatz 2
Schirttweite 5Nm
Anfang 400nm
Ende 700nm
Datensatz: 0,5 ; 0,2; 0,8.... (Datensätze von 400 bis 700)Meine erste Idee war es eine Tabelle anzulegen, in der die Spalten ID, Schrittweite, Anfang, Ende, Daten existieren und die Daten als String Tupel abgespeichert werden und hinterher extrahiert werden müssen. Jedoch birgt dies das Problem, dass die Daten als Float abgespeichert werden und somit ein String etliche Zeichen benötigt.
Eine andere Idee war es eine Datensatztabelle mit 2 Spalten zu Definieren (ID, Wert) und jeden Wert Zeilenweise hineinzuschreiben, so dass das ganze wie folgt ausschaut:
ID_TABELLE1-1 0,5
ID_TABELLE1-1 0,2
ID_TABELLE1-1 0,8Die Ideen finde ich nicht sonderlich elegant, da die Daten ja doch zeilenweise Repräsentiert werden sollten bzw. Sehr viel extrahiert werden muss.
-
Hallo,
ich find die Idee mit der zweiten Tabelle sehr elegant. Viele Daten benötigen viel Platz. Da gibts kein Weg drumherum.
Persönlich bevorzuge ich immer gut indizierte Tabellen mit möglichst wenig Spalten (Feldern).LG
-
Ich würde in die zweite Tabelle sogar das Spektrum mit als Index abspeichern, so kann man beispielsweise nach allen 455NM Spektren suchen.
-
Kommt drauf an wie das ganze suchbar sein soll.
Rein der Lookup Datensatz-ID -> Spektrum wird sicher massiv viel schneller, wenn du das ganze Spektrum in einen String formatierst und den in ein varchar Feld packst.
Wenn du flexible Abfragen unterstützen willst, dann mach die Variante mit ner Detail-Tabelle.