Ich habe viel von Robert C. Martin gelesen / gesehen. Ich bin auf ihn gestoßen, als er sagte, SQL sei wegen Solid-State-Laufwerken unnötig. Wenn ich nach anderen Quellen suche, um dies zu sichern, erhalte ich eine Reihe von zufälligen Artikeln, in denen der Unterschied der SQL-Leistung zwischen Festplatten und Solid-State-Laufwerken beschrieben wird (was damit zusammenhängt, aber nicht das, was ich zu erforschen versuche).
Letztendlich verstehe ich nicht, worauf er abzielt. Sagt er, SQL durch No-SQL-Technologien zu ersetzen? Sagt er, Daten in Dateien in einem Dateisystem zu speichern? Oder möchte er nur, dass die Leute aufgrund von SQLi-Angriffen aufhören, SQL / Relationale Datenbanken zu verwenden? Ich fürchte, ich verpasse den Punkt, den er anstrebt.
Ich werde hier einige Links bereitstellen, damit Sie direkt aus seinen Gedanken lesen können:
Zunächst erklärt er, dass SQL vollständig aus dem System entfernt werden sollte.
Die Lösung. Die einzige Lösung. Ist es, SQL vollständig aus dem System zu eliminieren. Wenn es keine SQL-Engine gibt, kann es keine SQLi-Angriffe geben.
Und obwohl er über das Ersetzen von SQL durch eine API spricht, denke ich NICHT, dass er SQL hinter eine API stellen soll, weil er zuvor zitiert und weiter oben in diesem Artikel darauf hingewiesen wurde.
Frameworks behandeln das Problem nicht; ...
Randnotiz: Wenn ich SQL sage, bin ich mir ziemlich sicher, dass Robert die meisten relationalen Datenbanken meint. Vielleicht nicht alle, aber die meisten. Auf jeden Fall verwenden die meisten Leute SQL. damit...
Wenn SQL nicht zum Speichern von Daten verwendet wird, was sollen wir dann verwenden?
Bevor ich darauf antworte, sollte ich auch beachten. Robert betont, dass Solid-State-Laufwerke die Tools ändern sollten, die wir zum Speichern von Daten verwenden. Die Antwort von Søren D. Ptæus weist darauf hin.
Ich muss auch auf die Gruppe "Aber Datenintegrität" antworten. Nach weiteren Recherchen sollten wir Transaktionsdatenbanken wie datomic verwenden . Dann verwandelt sich CRUD in CR (Erstellen und Lesen) und SQL-Transaktionen verschwinden vollständig. Datenintegrität ist natürlich wichtig.
Ich kann keine Frage finden, die all dies umfasst. Ich suche nach Alternativen, die Roberts Richtlinien entsprechen. Datomic ist eins, aber ist es das? Welche anderen Optionen entsprechen diesen Richtlinien? Und funktionieren sie tatsächlich besser mit Solid-State-Laufwerken?
eval(request.GET["table_name"] + ".get(pk=" + request.GET["pk"] + ")"))
. Es ist nicht SQL, das wirklich schuld ist, sondern arme, unwissende Programmierer.