Announcement

Collapse
No announcement yet.

Datensätze bereits vorhanden ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datensätze bereits vorhanden ?

    Hallo zusammen,

    ich habe folgende Aufgabenstellung:

    Ich will Dateien mit vielen (>>1000) Messergebnissen in eine MySQL Datenbank einlesen.
    Jede Datei enthält die Ergebnisse von je einer Messreihe. Eine Messreihe besteht aus bis zu 1500 Ergebnissen. Pro Messergebnis ist jeweils auch ein Satz von Limits vorhanden. (Pro Messung ein unteres und ein oberes Limit).

    Ich möchte Die Limits losgelöst von den Ergebnissen in der Datenbank ablegen, aber trotzdem einen festen Verweiss vom den Messreihen zu dem jeweiligen Limit-Satz haben.
    Die Limits ändern sich nur selten von Messreihe zu Messreihe.
    Ich rechne mit mehreren Tausend Datensätzen von Messergebnissen. Die Sätze von Limits werden es aber nicht über 200 schaffen. Dabei können sie die Sätze von Limit mitunter durch nur eine
    einzige Ziffer Unterscheiden.

    Soweit ist ja noch alles in Ordnung.

    Aber jetzt kommt mein Problem:
    ---------------------------------------
    Ich muss beim Einlesen der Datei den gefilterten Satz von Limits auf Vorhandenheit in der Datenbank prüfen.
    Existiert der Datensatz bereits, brauche ich den nicht einzulesen, sondern mir nur dessen ID zu holen.
    Die Tabelle der Limits sieht in etwa so aus:

    Messung |UnteresLimit|OberesLimit|Einheit
    --------------------------------------------------
    test1 |0.1234 |0.9876 |mV
    test2 |1.1234 |1.9876 |mV
    test3 |2.1234 |2.9876 |mV
    ...
    test1499|0.5600 |0.6069 |mA
    test1500|0.2000 |0.4000 |mA


    Wie gehe ich hier am besten vor?
    Meine Idee war:
    Ich lese den Satz von Limits ein und lasse dann die Datenbank doppelte Datensätze finden?
    Wie mache ich soetwas? Dann brauche ich die ID des bereits vorhandenen Datensatzes, damit ich die Messergebnisse darauf verweisen kann. Wie erhalte ich die ID?
    Ist dan nicht extrem langsam?

    Gibt es schnellere, bessere, elegantere Wege?

    Vielen Dank im vorraus,
    Thorsten

  • #2
    ich nehme mal an dass du die Datei zeilenweise einliest. Wenn du die Limits einliest (am Anfang des Dokuments?), fragst du in der Datenbank die ID mit diesen Werten ab. wenn die Variable ="" ist, fügst du eine neue Zeile ein und rufst erneut ab (bzw lässt dir den erzeugten primary key zurückgeben).
    Ob es eine schnellere Variante gibt weiß ich auch nicht

    Comment


    • #3
      Nein, die Limits stehen immer bei den Messwerten. Aber das macht -glaube ich- keinen Unterschied.

      Mit Deinem Vorschlag komme ich leider nicht an das Ergebnis, das ich eigentlich haben will.
      Nämlich:
      Ich will nicht nur ein einzelnes Limit auf Vorhandenheit (und auf den richtigen Wert checken) sondern ALLE 1500 Limits vergleichen. Sollte sich ein einzelner Wert zum letzten in der Datenbank gespeicherten Wert unterscheiden möchte ich den neuen Wert mit einer neuen Revision ablegen.
      Sobald sich mindestens ein Limit ändert, will ich den ganzen Satz von Limits neu versionieren.

      Comment

      Working...
      X