Frage

Mit wirklich nur kleinen Datenmengen, die Politik, wo ich arbeite in der Regel sich in Textdateien zu halten, aber in meiner Erfahrung kann dies eine Entwicklung Kopfschmerzen sein. Die Daten stammen im Allgemeinen aus der Datenbank und, wenn dies nicht der Fall, wird der Prozess bei der Festsetzung es / Speicherung es beteiligt ist, in der Regel im Code versteckt. Mit der Datenbank können Sie in der Regel alle Daten zur Verfügung, um Sie sehen und die Art und Weise, mit der sie auf andere Daten bezieht.

Manchmal für wirklich kleine Mengen von Daten speichere ich sie nur in einer internen Datenstruktur im Code (wie ein Perl-Hash), aber dann, wenn eine Änderung erforderlich ist, ist es in den Händen eines Entwicklers.

Wie gehen Sie mit kleinen Mengen von selten geänderte Daten? Haben Sie Kriterien, wann eine Datenbanktabelle oder eine Textdatei oder verwenden ..?

Ich bin versucht, nur eine Datenbanktabelle für absolut alles zu benutzen, aber ich bin mir nicht sicher, ob es irgendwelche Auswirkungen auf diese.

Edit: Für Kontext:

Ich habe für eine Handvoll Unternehmen ein neues Kontakt-Formular auf der Website zu stellen, frage mit mehr gelegentlich in der Zukunft hinzugefügt werden. Außer Unternehmen .. keinen Kontakt E-Mail-Adressen haben die Benutzer innerhalb dieser Unternehmen tun (wie sie Arbeitsplätze durch ihre eigenen Konten veröffentlichen). Nun aber wollen wir eine „spekulative Anwendung“ Art Funktionalität und die Form muss eine E-Mail-Adresse, um diese Anwendungen zu senden. Aber wir wollen auch nicht, eine E-Mail-Adresse als eine Eigenschaft in der Form oder auch Spammer setzen kann es nur als offenen E-Mail-Gateway verwenden. So klar, wir brauchen eine ID -> contact_email Art Beziehung mit Unternehmen.

SO, kann ich entweder eine Spalte in eine Tabelle mit Millionen von Zeilen hinzufügen, die verwendet werden, wörtlich etwa 20-mal oder eine neue Tabelle erstellen, dass bei den meisten wird etwa 20 Reihen halten. Typischerweise, wie wir dies in der Vergangenheit behandeln nur eine fiese Textdatei zu erstellen und von dort zu lesen. Aber das schafft Alpträume Wartung und diese Textdateien werden häufig sehen über, wenn die Daten, dass sie auf Änderungen ab. Vielleicht ist dies ein Fehler mit dem Prozess, aber ich bin nur daran interessiert zu hören Ansichten zu diesem Thema.

War es hilfreich?

Lösung

Wenn diese kleine config-wie Daten sind, verwende ich ein paar einfache und gemeinsames Format. ini, json und yaml sind in der Regel in Ordnung. Java und .NET-Fans auch wie XML. kurz gesagt, verwenden Sie etwas, das Sie leicht zu einem Objekt im Speicher und vergessen Sie es lesen kann.

Andere Tipps

Legen Sie es in der Datenbank. Wenn es selten cachen es in Ihrer mittleren Ebene ändert.

Das Beispiel, das sofort in dem Sinne kommt ist, was angemessen ist als Aufzählung zu haben, gespeichert und was angemessen in einer „Nachschlag“ Datenbanktabelle gespeichert zu haben.

Ich neige dazu, mit der Regel „um die Linie zu zeichnen“, dass, wenn es in einer Spalte in der Datenbank führt eine „magische Zahl“ enthält, die auf einen Aufzählungswert abbildet, dann die Aufzählung wirklich als eine Nachschlagtabelle existieren sollte. Wenn es auf die gespeicherten Daten in der Datenbank nicht verwandt ist (z. B. Anwendungskonfigurationsdaten eher als Benutzerdaten erzeugt), dann ist es eine Aufzählung den ganzen Weg.

Sicher hängt es von dem Benutzer des Software-Tool, das Sie entwickelt haben, um den Satz von Daten, unabhängig von ihrer Größe zu konsumieren?

Es könnte nur sein, dass sie Excel kennen, so dass Ihr Werkzeug müßte eine CSV-Datei analysiert, die sie schaffen.

Wenn es für die Entwickler geschrieben, dann kümmert sich, wer was Sie verwenden. Ich bin kein Fan von Datenbanken jedoch mit kleinerem oder transienten Daten unübersichtlich.

Wir haben ein Standard-Konfigurationsdateiformat (Schlüssel: Wert) und eine Klasse, es zu handhaben. Wir verwenden nur, dass bei allen Projekten. Meist sind setzen wir nur persistente Eigenschaften für unsere Anwendungen (Handy-Entwicklung) so, das ist eine angemessene Sache zu tun. YMMV

In den Fällen, in denen das Programm eine Datenbank zugreift, werde ich alles speichern drin: einfacher für Backup und Daten bewegen

.

Für kleine Programme ohne Datenbankzugriff speichere ich meine Daten in den .net-Einstellungen, die in einer XML-Datei gespeichert werden - dies natürlich eine Funktion von c #, so dass es nicht für Sie möglicherweise

.

Wie auch immer, ich sicherstellen, dass alle Daten an einem zentralen Ort zu speichern. Normalerweise wird eine Datenbank.

Haben Sie darüber nachgedacht SQLite ? Es ist dateibasiert, was Ihr Gefühl Adressen, die „nur eine Datei tun könnte“ (Null-Konfiguration), aber es ist eine ganz gute Datenbank und bemerkenswert gut skaliert. Es unterstützt eine Reihe von APIs und es gibt zahlreiche Frontends es für die Verwaltung.

Ich würde es auf die Datenbank in der Haupttabelle hinzufügen:

  1. Backup und Recovery (Sie wollen diese Textdatei erholen, oder?)
  2. Adhoc anfragende (da Sie können es tun, wird ein SQL-Tool und verbinden es mit den anderen Datenbankdaten)
  3. Wenn die Datenbankspalte die Speicheranforderungen für sie leer ist, sollte minimal sein (nichts, wenn es sich um eine NULL-Spalte am Ende der Tabelle in Oracle)
  4. Es wird einfacher, wenn Sie mehrere Anwendungsserver haben wollen, da Sie nicht mehrere Kopien von einigen zusätzlichen Konfigurationsdatei halten müssen um
  5. in ein kleines Kind Tisch Putting erschwert nur das Design ohne echte Vorteile zu geben

Sie können auch bereits in derselben Zeile in der Datenbank als Teil der Verarbeitung gehen trotzdem, so dass die Leistung ist nicht wahrscheinlich ein Problem sein. Wenn Sie nicht sind, können Sie es im Speicher zwischenspeichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top