tag:forum.selfhtml.org,2005:/self JSON Datenbank? – SELFHTML-Forum 2020-10-23T11:36:18Z https://forum.selfhtml.org/self/2020/oct/23/json-datenbank/1776955#m1776955 El Manu 2020-10-23T10:40:58Z 2020-10-23T10:40:58Z JSON Datenbank? <p>Hallo,</p> <p>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:</p> <pre><code class="block">{ "id": "1", "benutzer": "flippy" "email": "flippy@flipmehl.kom" "etc.": "usw." } </code></pre> <p>Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?</p> <p>Danke, El Manu.</p> https://forum.selfhtml.org/self/2020/oct/23/json-datenbank/1776958#m1776958 Auge 2020-10-23T10:56:22Z 2020-10-23T10:56:22Z JSON Datenbank? <p>Hallo</p> <blockquote> <p>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:</p> </blockquote> <p>Auf die Datei mit den Benutzerdaten sollte <strong>niemand</strong> (also Personen) Zugriff haben (nicht über HTTP (also übers Web), nicht über das Dateisystem), sondern nur die Anwendung, mit der du die Daten verwaltest.</p> <blockquote> <pre><code class="block">{ "id": "1", "benutzer": "flippy" "email": "flippy@flipmehl.kom" "etc.": "usw." } </code></pre> <p>Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?</p> </blockquote> <p>Grundsätzlich ist das machbar. Es gibt <a href="https://ar.al/2020/10/20/introducing-jsdb/" rel="nofollow noopener noreferrer">Datenbanken in JavaScript-Code</a>, 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.</p> <p>Tschö, Auge</p> <div class="signature">-- <br> Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.<br> <em>Hohle Köpfe</em> von Terry Pratchett </div> https://forum.selfhtml.org/self/2020/oct/23/json-datenbank/1776959#m1776959 Raketenwilli 2020-10-23T11:12:51Z 2020-10-23T11:12:51Z JSON Datenbank? <blockquote> <p>Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?</p> </blockquote> <p>Ja!</p> <ol> <li> <p>Bei ungünstiger Lage der Datei kann diese eventuell leicht heruntergeladen werden. Das wird wohl ein Sicherheitsproblem sein.</p> </li> <li> <p>Bei günstiger Anlage der Datentabelle können die ID, der Benutzername und ggf. die Mailadresse als <code>unique</code> deklariert werden. Diese schöne und absolute Möglichkeit der Vermeidung logischer Fehler müsstest Du dann selbst nachbauen.</p> </li> <li> <p>Selbst wenn Du nicht auf einen MySQL- oder anderen Datenbankserver zugreifen willst gibt es <a href="https://www.sqlite.org/index.html" rel="nofollow noopener noreferrer">sqlite3</a> falls Du PHP nutzst und Dich dazu entschließen solltest, mach es <a href="https://www.php.net/manual/de/ref.pdo-sqlite.php" rel="nofollow noopener noreferrer">via PDO</a>. Das vereinfacht später den Umstieg. <strong>(Beachte Punkt 1!)</strong></p> </li> </ol> https://forum.selfhtml.org/self/2020/oct/23/json-datenbank/1776960#m1776960 Raketenwilli, der Nachtragende 2020-10-23T11:17:27Z 2020-10-23T11:17:27Z JSON Datenbank? <p>Nachtrag:</p> <blockquote> <p>Diese schöne und absolute Möglichkeit der Vermeidung logischer Fehler müsstest Du dann selbst nachbauen.</p> </blockquote> <p>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…</p> https://forum.selfhtml.org/self/2020/oct/23/json-datenbank/1776961#m1776961 dedlfix 2020-10-23T11:36:18Z 2020-10-23T11:36:18Z JSON Datenbank? <p>Tach!</p> <blockquote> <blockquote> <p>Gibt es da irgendwelche Vorbehalte, die es zu berücksichtigen gilt?</p> </blockquote> <p>Ja!</p> </blockquote> <ol start="4"> <li>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.</li> </ol> <p>dedlfix.</p>