El Manu: JSON Datenbank?

Hallo,

habe bis jetzt mit einer MYSQLI-Datenbank gearbeitet und erwäge, für ein zukünftiges Projekt die Nutzerdaten einfach in einer JSON−Datei zu speichern (auf die natürlich nur authorisierte Personen Zugriff haben), nach dem Schema:

{
	"id": "1",
	"benutzer": "flippy"
	"email": "flippy@flipmehl.kom"
	"etc.": "usw."
}

Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?

Danke, El Manu.

  1. Hallo

    habe bis jetzt mit einer MYSQLI-Datenbank gearbeitet und erwäge, für ein zukünftiges Projekt die Nutzerdaten einfach in einer JSON−Datei zu speichern (auf die natürlich nur authorisierte Personen Zugriff haben), nach dem Schema:

    Auf die Datei mit den Benutzerdaten sollte niemand (also Personen) Zugriff haben (nicht über HTTP (also übers Web), nicht über das Dateisystem), sondern nur die Anwendung, mit der du die Daten verwaltest.

    {
    	"id": "1",
    	"benutzer": "flippy"
    	"email": "flippy@flipmehl.kom"
    	"etc.": "usw."
    }
    

    Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?

    Grundsätzlich ist das machbar. Es gibt Datenbanken in JavaScript-Code, warum also nicht in JSON? Ob das sicher und performant ist (kommt auf deine Konfiguration, deinen Code und deinen Server an), steht auf einem anderen Blatt.

    Tschö, Auge

    --
    Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
    Hohle Köpfe von Terry Pratchett
  2. Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?

    Ja!

    1. Bei ungünstiger Lage der Datei kann diese eventuell leicht heruntergeladen werden. Das wird wohl ein Sicherheitsproblem sein.

    2. Bei günstiger Anlage der Datentabelle können die ID, der Benutzername und ggf. die Mailadresse als unique deklariert werden. Diese schöne und absolute Möglichkeit der Vermeidung logischer Fehler müsstest Du dann selbst nachbauen.

    3. Selbst wenn Du nicht auf einen MySQL- oder anderen Datenbankserver zugreifen willst gibt es sqlite3 falls Du PHP nutzst und Dich dazu entschließen solltest, mach es via PDO. Das vereinfacht später den Umstieg. (Beachte Punkt 1!)

    1. Nachtrag:

      Diese schöne und absolute Möglichkeit der Vermeidung logischer Fehler müsstest Du dann selbst nachbauen.

      Du wirst beim Programmieren möglicherweise schnell merken, dass Du Dir damit so viel komplizierte Mehrarbeit machst, dass Du von dem Vorhaben absiehst und Dich ggf. doch lieber mit der Datenbank beschäftigst…

    2. Tach!

      Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?

      Ja!

      1. Konkurrenzprobleme im Mehrbenutzerbetrieb. Schwer zu finden, weil sporadisch auftauchend und nicht so einfach nachvollziehbar. Dateien müssen gegen weitere Zugriffe gesperrt werden, wenn ein Prozess bereits daran arbeitet. Zudem muss sichergestellt sein, dass kein Prozess Änderungen eines anderen wieder rückgängig macht, weil die Datenhaltung im Speicher den alten Stand repräsentiert.

      dedlfix.