Was ist der beste Weg, um einzelne sich nicht wiederholende Daten in einer Datenbank zu speichern?

8

Was ist die beste Vorgehensweise zum Speichern von Daten in einer Datenbank, die nur einen einzigen Eintrag erfordert? Ein Beispiel wären Konfigurationsdaten, die sich auf die gesamte Anwendung / Website beziehen. Ist es üblich, dafür eine Tabelle zu erstellen, die nur einen einzigen Eintrag hat?

Ich frage im Kontext einer MongoDB-Datenbank, obwohl ich denke, dass die Frage auch für SQL-Datenbanken gilt.

    
Groady 21.03.2012, 08:00
quelle

6 Antworten

5

Ein Beispiel für eine Hilfstabelle, die üblicherweise in Datenbanken gefunden wird, heißt Constants und kann solche Werte von pi enthalten. Die Idee beginnt damit, dass alle Anwendungen, die die Datenbank verwenden, dieselbe Skalierung und Genauigkeit verwenden müssen. Um sicherzustellen, dass sie höchstens eine Zeile, z. ( von Joe Celko ):

%Vor%

Da mySQL% constraint% constraint nicht unterstützt, ist ein Trigger erforderlich, um dasselbe zu erreichen.

    
onedaywhen 21.03.2012 08:25
quelle
2

Eine Tabelle wäre in Ordnung, kein Grund, sie nicht zu benutzen, nur weil sie nur eine Zeile hat.

Ich hatte gerade die seltsamste Idee (ich würde es nicht umsetzen, aber aus irgendeinem Grund dachte ich darüber nach). Sie können eine fest codierte Ansicht wie folgt erstellen:

%Vor%

und machen Sie select * from myConfigView :)

aber wieder, kein Grund, warum nicht eine Tabelle zu verwenden, nur weil es nur eine Zeile

haben wird     
Diego 21.03.2012 09:23
quelle
1

Wenn Sie eine SQL DB verwenden, haben Sie wahrscheinlich Spalten wie Schlüsselname und Wert, und jedes Attribut wird als Zeile gespeichert. In MongoDB können Sie alle zugehörigen Konfigurationen als einzelnes JSON-Dokument speichern

    
Samarth Bhargava 21.03.2012 08:04
quelle
0

Für MongoDB-Datenbanken mache ich normalerweise nur eine neue "Tabelle", aber für SQL-Datenbanken bedeutet das viel mehr (besonders wenn andere auch an der gleichen Datenbank arbeiten; SQL ist nicht so formbar), also Sie möchten vielleicht etwas vorsichtiger damit umgehen.

    
Dhaivat Pandya 21.03.2012 08:03
quelle
0

Ich verwende eine Config-Tabelle mit einem Namen (config_name) und einem Wert (config_value). Ich füge sogar ein Hilfe-Feld hinzu, so dass Benutzer sehen können, wofür das Name / Wert-Paar bestimmt ist oder wo es verwendet wird.

%Vor%

Dann stellt der folgende PHP-Code den Wert für einen Schlüssel wieder her oder gibt eine leere Zeichenfolge zurück. Angenommen, $ db ist eine offene Datenbankverbindung. Alle Einträge werden in Kleinbuchstaben umgewandelt.

%Vor%

Alle mysql / php in diesem Fall, aber das allgemeine Prinzip bleibt.

    
rainecc 21.03.2012 08:31
quelle
0

Ich würde nur Tabelle für Konfigurationen erstellen, wie rainecc sagte, und benutze dann den Cache, um diese ganze Tabelle in den Speicher zu bringen :) und benutze sie von dort (Cache). Es wird das Beste sein.

    
Anton 21.03.2012 08:38
quelle

Tags und Links