He estado leyendo / viendo mucho contenido de Robert C. Martin. Me he encontrado con él diciendo que SQL es innecesario debido a las unidades de estado sólido. Cuando busco en otras fuentes para respaldar esto, recibo un montón de artículos aleatorios que describen la diferencia del rendimiento de SQL entre los discos duros y las unidades de estado sólido (que está relacionado pero no es lo que estoy tratando de investigar).
En última instancia, no entiendo a qué está tratando de llegar. ¿Está diciendo reemplazar SQL con tecnologías No-SQL? ¿Está diciendo almacenar datos en archivos en un sistema de archivos? ¿O solo quiere que la gente deje de usar SQL / Bases de datos relacionales debido a los ataques SQLi? Me temo que me estoy perdiendo el punto que está tratando de hacer.
Proporcionaré algunos enlaces aquí para que pueda leer directamente de su mente:
Primero, afirma que SQL debería eliminarse por completo del sistema.
La solución. La única solución. Es eliminar SQL del sistema por completo. Si no hay un motor SQL, entonces no puede haber ataques SQLi.
Y aunque habla de reemplazar SQL con una API, NO creo que se refiera a poner SQL detrás de una API debido a esa cita previa y lo que dice anteriormente en el artículo.
Los marcos no manejan el problema; ...
Nota al margen: al decir SQL, estoy bastante seguro de que Robert se refiere a la mayoría de las bases de datos relacionales. Quizás no todos, pero la mayoría. En cualquier caso, la mayoría de las personas están utilizando SQL de todos modos. entonces...
Si SQL no se usa para conservar datos, entonces, ¿qué se supone que debemos usar?
Antes de responder eso, también debo señalar. Robert enfatiza que las unidades de estado sólido deberían cambiar las herramientas que utilizamos para conservar los datos. La respuesta de Søren D. Ptæus señala esto.
También debo responder al grupo "pero integridad de datos". Tras una investigación adicional, Robert dice que deberíamos usar bases de datos transaccionales como datomic . Luego, CRUD se convierte en CR (crear y leer) y las transacciones SQL desaparecen por completo. La integridad de los datos es, por supuesto, importante.
No puedo encontrar una pregunta que abarque todo esto. Supongo que estoy buscando alternativas que coincidan con las pautas de Robert. Datomic es uno pero ¿es eso? ¿Qué otras opciones coinciden con estas pautas? ¿Y funcionan realmente mejor con unidades de estado sólido?
eval(request.GET["table_name"] + ".get(pk=" + request.GET["pk"] + ")"))
. No es SQL el que realmente tiene la culpa, sino programadores pobres e ignorantes.