76 Stimmen

Was ist das beste Trennzeichen für eine Klartext-DB-Datei?

Was ist das beste Trennzeichen für eine Klartext-DB-Datei?

Ich erwog die Verwendung von | , , , <TAB> , ; , usw. Aber sie alle scheinen möglich zu sein, wenn die benachbarten Einträge genügend Sonderzeichen haben.

Welche(s) Begrenzungszeichen empfehlen Sie, liebe erfahrene Datenbankbenutzer, zu verwenden?

5voto

dim_user Punkte 889

Ich bevorzuge normalerweise nicht druckbare Zeichen wie " \u0001 "Ich verwende dies zum Beispiel als Spaltentrennzeichen in den meisten meiner Azure Data Analytics U-SQL Skripte. Dies setzt voraus, dass Sie ein mehrstelliges benutzerdefiniertes Trennzeichen verwenden können

4voto

Ich persönlich verwende gerne " als Trennzeichen, um Daten in CSV-Dateien aufzuteilen. Ich glaube nicht, dass ich jemals ein natürlich vorkommendes Beispiel für " und " gefunden habe, daher hier meine Meinung dazu.

4voto

Wouter Punkte 1668

Sie könnten die speziellen Trennzeichen (hex 1c -> 1f) verwenden, doch sind sie nicht druckbar, und einige Technologien haben Probleme bei der Verarbeitung von Daten, die sie enthalten.

Plan B: Wenn Ihre Daten in UTF-8 vorliegen, können Sie ein zufälliges UTF-8-Zeichen auswählen, das extrem Es ist unwahrscheinlich, dass sie in den Quelldaten, die Sie erhalten, erscheinen.

Aber selbst dann sollten Sie, wenn Sie sicher sein wollen, dass Sie keine Probleme bekommen, immer Ihren gesamten Datensatz nach diesem Zeichen durchsuchen, und wenn es auftaucht, einfach ein anderes UTF-8-Zeichen wählen.

Ich neige dazu, Verkapselungen leidenschaftlich zu hassen, und vermeide sie, wann immer es möglich ist, wie in meinem Beitrag unter dem Kapitel "Verkapselung" hier erklärt: https://theonemanitdepartment.wordpress.com/2014/12/15/the-absolute-minimum-everyone-working-with-data-absolutely-positively-must-know-about-file-types-encoding-delimiters-and-data-types-no-excuses/

1voto

Chris Subagio Punkte 5719

Wenn Sie keine Kontrolle über die eingegebenen Daten haben, sollten Sie keine reine Textdatenbank verwenden. Hier kann es keine allgemein richtige Antwort geben. Ohne Kontext oder Zwänge ist dies eine falsche Frage.

Das heißt: Wenn ich sage, dass ich nur Kleinbuchstaben als Daten akzeptiere, könnte ich jedes andere Symbol als Trennzeichen verwenden. Sogar, sagen wir, die Zahl 9, und es wäre in Ordnung. Kein anderes Symbol als ein Kleinbuchstabe wäre besser als ein anderes.

Wenn ich aber jedes beliebige Zeichen akzeptieren könnte, dann habe ich keine Zeichen mehr für ein Trennzeichen übrig, und ich hätte eine sehr traurige Datenbank, die nur einen einzigen Wert speichern könnte.

Wenn Sie sich zu sehr anstrengen müssen, um Ihre Datenbank in reinen Text umzuwandeln, brauchen Sie wahrscheinlich eine Binärdatenbank. Haben Sie sich Sqlite angeschaut? Es ist verdammt einfach zu benutzen, ist in vielen Kontexten verfügbar und bietet eine Menge Vorteile gegenüber einer reinen Textdatenbank.

0voto

svargh Punkte 9

Wenn Sie die Möglichkeit haben, eine Zeichenkette als Spaltentrennzeichen zu verwenden, benutzen Sie "" als Begrenzer. Sie können jede beliebige Zeichenkette verwenden, was Ihnen Flexibilität bietet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X