ฉันอ่าน / ดูเนื้อหา Robert C. Martin มากมาย ฉันเจอเขาแล้วบอกว่า SQL นั้นไม่จำเป็นเพราะโซลิดสเตตไดรฟ์ เมื่อฉันค้นหาแหล่งข้อมูลอื่น ๆ เพื่อสำรองสิ่งนี้ฉันได้รับบทความสุ่มจำนวนมากที่อธิบายถึงความแตกต่างของประสิทธิภาพการทำงานของ SQL ระหว่างฮาร์ดไดรฟ์และโซลิดสเตทไดรฟ์ (ซึ่งเกี่ยวข้อง แต่ไม่ใช่สิ่งที่ฉันพยายามค้นคว้า)
ท้ายที่สุดฉันไม่เข้าใจสิ่งที่เขาพยายามทำ เขากำลังพูดแทนที่ SQL ด้วยเทคโนโลยี No-SQL หรือไม่ เขาบอกว่าเก็บข้อมูลในไฟล์ในระบบไฟล์หรือไม่? หรือเขาต้องการให้คนหยุดใช้ SQL / ฐานข้อมูลเชิงสัมพันธ์เนื่องจากการโจมตีของ SQLi ฉันกลัวว่าฉันพลาดจุดที่เขาพยายามจะทำ
ฉันจะให้ลิงก์บางส่วนที่นี่เพื่อให้คุณสามารถอ่านได้โดยตรงจากความคิดของเขา:
อันดับแรกเขาระบุว่าควรลบ SQL ออกจากระบบทั้งหมด
การแก้ไขปัญหา. ทางออกเดียว คือการกำจัด SQL ออกจากระบบทั้งหมด หากไม่มีเอ็นจิ้น SQL จะไม่มีการโจมตี SQLi
และแม้ว่าเขาจะพูดถึงการแทนที่ SQL ด้วย API แต่ฉันไม่คิดว่าเขาหมายถึงการวาง SQL ไว้ด้านหลัง API เนื่องจากการอ้างอิงก่อนหน้านั้นและสิ่งที่เขาพูดก่อนหน้านี้ในบทความ
กรอบไม่สามารถจัดการกับปัญหา; ...
ด้านหมายเหตุ: ในการพูด SQL ฉันค่อนข้างมั่นใจว่า Robert หมายถึงฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่ อาจจะไม่ทั้งหมด แต่ส่วนใหญ่ ไม่ว่าในกรณีใดคนส่วนใหญ่ใช้ SQL อย่างไรก็ตาม ดังนั้น...
ถ้า SQL ไม่ได้ถูกใช้เพื่อเก็บข้อมูลเราก็ควรใช้อะไร?
ก่อนที่จะตอบว่าฉันควรทราบด้วย Robert เน้นว่าไดรฟ์โซลิดสเตทควรเปลี่ยนเครื่องมือที่เราใช้เพื่อคงอยู่ของข้อมูล คำตอบของSøren D. Ptæusชี้ให้เห็นสิ่งนี้
ฉันต้องตอบกลับกลุ่ม "แต่ความถูกต้องของข้อมูล" ด้วย เมื่อการวิจัยต่อไปบางส่วนโรเบิร์ตกล่าวว่าเราควรจะใช้ฐานข้อมูลการทำธุรกรรมเช่นdatomic จากนั้น CRUD เปลี่ยนเป็น CR (สร้างและอ่าน) และธุรกรรม SQL ก็หายไปโดยสิ้นเชิง ความถูกต้องของข้อมูลเป็นสิ่งสำคัญ
ฉันไม่พบคำถามที่ครอบคลุมทั้งหมดนี้ ฉันเดาว่าฉันกำลังมองหาทางเลือกที่ตรงกับแนวทางของโรเบิร์ต Datomic เป็นหนึ่งเดียว แต่มันคืออะไร? ตัวเลือกอื่น ๆ ที่ตรงกับหลักเกณฑ์เหล่านี้? และพวกเขาจะทำงานได้ดีขึ้นกับไดรฟ์สถานะของแข็ง?
eval(request.GET["table_name"] + ".get(pk=" + request.GET["pk"] + ")"))
ที่ไม่ได้มีอินเตอร์เฟซที่เป็นข้อความไม่ช้าก็เร็วบางโปรแกรมเมอร์ยากจนจะเขียนโค้ดที่มีลักษณะเช่นนี้ ไม่ใช่ SQL ที่ผิดจริง แต่โปรแกรมเมอร์ที่น่าสงสาร