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