Aus irgendeinem Grund habe ich viele Kunden, die vorhandene Daten in Tabellen gespeichert haben. Oft gibt es hunderte, wenn nicht sogar tausende von Items in jeder Tabelle, und die Aufforderung an den Kunden, sie manuell über eine Webseite einzugeben (oder der Himmel verbietet es, sie auf diese Weise selbst zu importieren) kommt nicht in Frage. In der Regel wird mit diesen Daten die Spreadsheet-Spalte nicht einfach der Datenbankspalte zugeordnet. Das wäre zu einfach. Oft müssen die Daten manipuliert werden, bevor sie in die Datenbank gehen (Daten müssen durch Kommata getrennt werden, usw.) oder die Daten müssen über mehrere Tabellen verteilt werden. Oder beides.Wie importieren Sie Daten aus einer Tabelle normalerweise in mehrere Datenbankspalten?
Ich stelle diese Frage, nicht weil ich nicht über eine Vielzahl von Möglichkeiten weiß, es zu tun, sondern weil ich mich nicht auf eine Art und Weise entschieden habe, die nicht mehr Arbeit braucht, als sie sollte . Bisher habe ich alle folgenden Ansätze genommen (und wahrscheinlich mehr, dass ich vergessen habe):
- Excel Unter Verwendung der Daten zu ändern, so ist es ein wenig einfacher
- Importieren der gesamten Tabelle zu importieren eine temporäre Tabelle in und dann mit SQL Import
- ein Skript zu schreiben und die Daten mit dem Import
Bisher mit einem Skript die Art und Weise wurde (ich habe VBScript, C# und jetzt Rubin verwendet wird), dass schien am flexibelsten, aber es fühlt sich immer noch etwas klobig an. Ich muss diese Aufgabe genug ausführen, dass ich sogar daran gedacht habe, ein wenig DSL dafür zu schreiben, nur um die Dinge zu beschleunigen.
Aber bevor ich das tue, bin ich neugierig, gibt es einen besseren Weg?
Die meisten Kunden sind ziemlich gut darin, einem Standard zu folgen, wenn die Importe häufig vorkommen. Die größten Probleme treten beim Importieren von Daten auf, die nur einmal importiert werden müssen (vor dem Start einer Site oder wenn neue Features hinzugefügt werden usw.). –
Das scheint mir einzigartig zu sein. Und das sind die Zeiten, in denen wir unsere Jobs hassen. –
Ich habe in der Vergangenheit MSSQL DTS dafür verwendet, und es hat gut funktioniert. Sie sollten das DTS-Paket in ein Protokoll in der Datenbank schreiben lassen, damit Sie wissen, wann es erfolgreich ist oder fehlschlägt. –