Spektren in Datenbank abspeichern - Spektren unterschiedlich lang

  • Themenstarter Themenstarter Bernd1987
  • Beginndatum Beginndatum
B

Bernd1987

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,8

Die Ideen finde ich nicht sonderlich elegant, da die Daten ja doch zeilenweise Repräsentiert werden sollten bzw. Sehr viel extrahiert werden muss.
 
Hallo, vielen Dank für die schnelle Antwort.

Ich werde mir heute mal die Normalformen zu gemüte führen. Ist es denn ein gängiges Mittel die jeden einzelnen Wert in eine Zeile zu schreiben?

Dann würden die beiden Tabellen so ausschauen:

Grundtabelle
ID_Grundtabelle | ID_WerteTabelle |Schrittweite | Anfang | Ende

Werte Tabelle
ID_WerteTabelle | FK_ID_Grundtabelle | WERT


In der Werte Tabelle würde dann die folgende Struktur existieren
ID_WerteTabelle | FK_ID_Grundtabelle | WERT
1 | 1 | 0,5
2 | 1 | 0,2
3 | 1 | 0,8
...
 
Ja es ist grundsätzlich so dass man Werte in eigene Zeilen schreibt. Das kriegt vorallem dann Bedeutung wenn du Auswertungen (MIN, MAX, AVG) auf solche Werte machen musst. Wenn du alle Werte in ein Feld speicherst kann man solche Sachen nicht mit SQL erledigen.

Zu deinem Tabellenvorschlag: Schaut gut aus. Was du ev. noch machen kannst ist die ID_WerteTabele weg zu lassen, falls es für dich nicht notwendig ist einen einzelnen Wert identifizieren zu können.
 
Vielen Dank, jetzt ist mir doch einiges klar geworden :) Nun kann ich voller Elan an die ganze Sache rangehen und bin nicht mehr so verunsichert wie vorher.

Mfg Bernd
 
Zurück