Frage

Ich habe einige echten Argumente für den Einsatz von relationaler Datenbank-vs-Tabelle vor gehört. Relationale Datenbank ermöglicht eine schnelle Berichterstattung und (relativ gesehen) zuverlässig Data Warehousing, wo Tabellen sind leicht, schnell replizierenden und leicht zu schweben rund um die Organisation zu verschiedenem Publikum. Obwohl ich die Vorteile entweder bemerken, kann ich kaum unterscheiden, was in dem Szenario besser ist, und immer mit Datenbank landen.

In der Entwicklung, es ist einfach zu vergessen, andere Optionen zu prüfen, wenn eine Konfigurationseinstellung in der Datenbank platzieren können. Ich habe ziemlich in ein paar apps läuft, wo Benutzermenüs, Arbeitsabläufe und ihre Befehle und Konstanten in der Datenbankebene definiert sind. Dies ist zwar gut, wenn diese Unternehmen unterliegen waren von der Anwendungsebene durch Endbenutzer ändern, war es nicht der Fall ist.

Also, was halten Sie von den Rollen von Datenbanken, Konfigurationsdateien und Tabellenblättern?

War es hilfreich?

Lösung

Das alte Sprichwort ist dies.

  

Wenn Sie eine Kalkulationstabelle verwenden, um ein Problem zu lösen, haben Sie jetzt zwei Probleme.

Datenbank ist für Aufzeichnungen des Unternehmens. Lange andauernd. Permanent.

Weitere Konfigurationsdateien sind für andere Konfigurationsinformationen - nicht lang anhaltende Geschäftsunterlagen. Aktuelle Einstellungen und was nicht erdulden Geschäftsunterlagen nicht, sie sind Teil einer spezifischen Software-Konfiguration, die die Geschäftsunterlagen verarbeitet werden.

Tabellen sind - gut - sie sind, was sie sind. Zu komplex eine einfache, Konfigurationsdatei zu sein. Zu einfach eine echte Datenbank zu sein.

Da sie sind (fast) unmöglich zu kontrollieren, müssen Sie einen Standard, korrekt, idempotent Ergebnis in der Datenbank. Sie sollten von dieser gesteuerte Quelle Tabellen neu erstellen können.

Und falls Sie für das Hochladen eine Tabelle übernehmen, müssen Sie die Daten extrahieren, und nie wieder auf das (fast unkontrollierbar) Quelldokument verweisen.

Andere Tipps

Für mich, ich will alle Kerndaten in einer Datenbank gespeichert werden. Zwei Gründe:

  • adhoc Reporting Zugriff auf die Daten ermöglichen
  • ermöglichen Anwendungen Daten gemeinsam zu nutzen.

Datenbanken sollten alle Domänendaten enthalten und gelegentlich einige On-the-fly-Daten (Benutzereinstellungen zum Beispiel). Relationale Datenbanken sind sehr beliebt, aber für einige Anwendungen gibt es andere Möglichkeiten.

Die Konfigurationsdatei auf der anderen Seite sollten alle ‚Parameter‘ enthalten, die Sie im System geändert werden soll; diejenigen, die nicht schnell geändert werden (on-the-fly). Config Produkte sind flexibel, aber nicht leicht, und in der Regel nicht von der Schnittstelle. Wenn es ein param ist, dass Sie nur die Coder ändern sich nur wünschen, dass sollte in den Code richtig sein (so dass niemand sonst hat Zugriff).

Wenn Sie mit Data-Mining-Geige wollen, bieten einige generische Mechanismus eine CSV-Datei mit den Ergebnissen einer SQL-Abfrage zum Download, direkt in Excel. Auf diese Weise Menschen mit Pivot-Tabellen Geige können, ohne dass die Anwendung des Schema zu ändern.

Tabellen sind Dokumente, Datenbanken sind Repositories für Informationen, Konfigurationsdateien speichern Regeln dafür, wie eine bestimmte Instanz einer Anwendung verhalten soll. Wenn Sie es auf diese Weise denken, es ist in der Regel nicht schwer, einen Anruf zu tätigen.

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