doppelte Einträge



  • Hi

    Ich habe folgendes Problem: Ich habe z.B. diese Daten:

    ersterString      12345
    zweiterString     987654
    dritterString     9999
    vierterString     12345
    zweiterString     987654
    fuenfterString    12345
    sechsterString    987654
    zweiterString     987654
    dritterString     9999
    ...
    ...
    ...
    

    Diese Daten kriege ich in einer Schleife... jetzt will ich nach der Schleife alle diese Daten in eine Datenbank schreiben, allerdings nicht doppelt, also in dem Fall sollte 2 mal "zweiterString - 987654" und ein mal "dritterString - 9999" rausfallen...

    Wie würdet ihr das machen?



  • Meinst du mit Datenbank, so eine richtige Datenbank? Dann setze einfach den Primärschlüssel auf das Feld, wo die eindeutigen Schlüssel reinsollen. Die Datenbank wird dann beim Versuch einen doppelten Schlüssel einzufügen mit einer entsprechenden Meldung reagieren.

    Oder meinst du mit "Datenbank" eine Datei, die du schreibst? Dann könntest du die Schlüssel in einer std::map<> speichern, und so sicherstellen, dass du jeden nur einmal hast.



  • Ich wills danach in die Datenbank schreiben, aber es sind doch einige hundert Schleifendurchläufe, und wenn ich da jedes mal probiere, dass ich es einfüge, wirds bestimmt ziemlich langsam.... außerdem darf sowohl der String als auch die Zahl doppelt vorkommen - nur eben nie die gleiche Kombination

    Danke im Voraus
    MfG
    Neescher



  • entweder mit einer where oder/und
    auf beide spalten einen unique setzten

    [ Dieser Beitrag wurde am 18.03.2003 um 09:55 Uhr von Unix-Tom editiert. ]



  • Wird das dann nicht sehr langsam, wenn ich so oft auf die Datenbank zugreifen will?



  • Nein.



  • die datenbank vergleicht doch beim einfuegen sowieso. und das bestimmt effizienter als du es koenntest. die paar einfuegversuche, die du also sparen willst, werden durch das redundante vergleichen locker wieder wett gemacht.
    vielleicht macht es sinn, wenn die datenbank richtig abartig gross ist und du sehr wenig datensaetze einfuegen willst. das musst du testen.



  • OK, so hab ichs jetzt gemacht, danke 🙂


Anmelden zum Antworten