Я багато читав / переглядав вміст Роберта К. Мартіна. Я натрапив на нього, кажучи, що SQL непотрібний через твердотільні накопичувачі. Коли я шукаю інші джерела, щоб підтвердити це, я отримую купу випадкових статей, що описують різницю продуктивності SQL між жорсткими дисками та твердотільними накопичувачами (що пов'язано, але не те, що я намагаюся дослідити).
Зрештою, я не розумію, до чого він намагається потрапити. Він говорить, чи замінити SQL технологіями No-SQL? Він говорить, що зберігати дані у файлах у файловій системі? Або він просто хоче, щоб люди перестали використовувати SQL / реляційні бази даних через атаки SQLi? Я боюся, що я пропускаю точку, яку він намагається зробити.
Я надам тут кілька посилань, щоб ви могли читати прямо з його думки:
По-перше, він заявляє, що SQL слід повністю видалити з системи.
Рішення. Єдине рішення. Це повністю усунути SQL з системи. Якщо двигуна SQL немає, то атак SQLi не може бути.
І хоча він говорить про заміну SQL на API, я не думаю, що він означає поставити SQL за API через цю попередню цитату і те, що він говорив раніше в статті.
Рамки не вирішують проблеми; ...
Побічна примітка: кажучи про SQL, я впевнений, що Роберт має на увазі більшість реляційних баз даних. Можливо, не всі, але більшість. У будь-якому випадку, більшість людей все одно використовують SQL. тому...
Якщо SQL не використовується для збереження даних, то що ми маємо використовувати?
Перш ніж відповісти на це, я також повинен зазначити. Роберт підкреслює, що твердотільні накопичувачі повинні змінити інструменти, які ми використовуємо для збереження даних. Відповідь Сьорена Д. Птюса наголошує на цьому.
Я також повинен відповісти на групу "але цілісність даних". Після деяких подальших досліджень Роберт каже, що ми повинні використовувати транзакційні бази даних, такі як датомічні . Потім CRUD перетворюється на CR (створювати і читати), а транзакції SQL взагалі відходять. Цілісність даних, безумовно, важлива.
Я не можу знайти питання, яке охоплює все це. Я думаю, я шукаю альтернативи, які відповідають настановам Роберта. Датомічний - це одне, але це так? Які ще варіанти відповідають цим рекомендаціям? І чи справді вони краще працюють на твердотільних накопичувачах?
eval(request.GET["table_name"] + ".get(pk=" + request.GET["pk"] + ")"))
. Виною насправді не SQL, а бідні, неосвічені програмісти.