Hello,
Es wird vorausgesetzt es sich um eine aus Excel exportierte CSV-Datei handelt, d.h. der Aufbau der CSV-Datei (Trennzeichen ist der Semikolon, Zeilenumbruch als \r\n, Werte sind nicht von Anführungszeichen eingeschlossen) ist bekannt.
Die Feldnamen sind ebenfalls festgelegt, die MySQL-Tabelle wird einmalig angelegt und bleibt bis auf weiteres unverändert.
Das ist wesentlich
1. Zeile enthält Feldnamen?
2. Felder Übereinstimmung prüfen
3. Lokale Default-Werte der DB ergänzen (Timestamp, IP, Bearbeiter...)
4. Felder passend zuordnen
a) Datensatz ist in CSV vorhanden, nicht in DB = Anlegen
b) Datensatz ist in CSV vorhanden, dito in DB = Update
c) Datensatz ist nicht in CSV, wohl aber in DB = Löschen
Besser:
a) nur hinzufügen
alle Datensäzte der CSV, die nicht in der DB stehen, werden
hinzugefügt. Das erfordert entweder einen sauberen Unique Key,
oder aber ein Select before Insert _pro_ Datensatz.
b) hinzufügen und updaten -> REPLACE
Das wäre sicher die normale Methode. Es werden aber nur Felder
überschreiben, die in der CSV-Tabelle vorhanden sind
NULL = ",," Leer = ", ," oder ein Steuerzeichen ,#,
Ob Excel das kann, weiß ich nicht
c) entfernen
Negativliste ist sehr praktisch.:
- Die Austritte des Jahres...
- Abgelaufene Ankündigungen
- ungülitge Ranglisten
Das spart Arbeit im Office und Traffic
Wobei man überlegen sollte, ob man den Datensatz da nicht einfach
mit einem Sperrmerker versieht
Dann sollte der Key sich aber aus zwei Feldern zusammensetzen:
Eigentlicher Datensatzschlüssel + lfd. Nummer des Standes
Grüße
Tom