คำถามติดแท็ก database

แท็กนี้สำหรับคำถามฐานข้อมูลทั่วไป หากคำถามของคุณเฉพาะกับ SQL ให้ใช้แท็กนั้นแทน

5
ทำไม Windows / Linux ไม่ใช้ฐานข้อมูลเชิงสัมพันธ์ (RDBMS)
ทำไม Windows / Linux ไม่ใช้ฐานข้อมูลเชิงสัมพันธ์ ( RDBMS ) ฉันรู้ว่าพวกเขาใช้ระบบไฟล์เพื่อจัดเก็บข้อมูลทั้งหมด แต่คุณไม่คิดว่ามันจะมีประสิทธิภาพมากกว่าในการใช้ฐานข้อมูลเหมือนที่เราใช้ในเว็บไซต์ / เว็บแอพ โปรดอธิบายอย่างละเอียดเกี่ยวกับการใช้ระบบไฟล์ผ่านฐานข้อมูลเพื่อการจัดเก็บ สิ่งนี้ไม่เหมือนกันเมื่อต้องการใช้ฐานข้อมูลมากกว่าการแยกข้อมูลจากไฟล์ข้อความหรือไม่ ฉันกำลังพูดถึงในแง่ของบริบทของระบบปฏิบัติการเท่านั้นและคำถามนั้นเป็นเรื่องทั่วไป

6
เหตุใดผู้คนจึงใช้ REST API แทน DBAL
ในอดีตที่ผ่านมาทั้งสอง บริษัท ฉันเคยอยู่ที่ REST API มีอยู่สำหรับการสืบค้นข้อมูลผ่านเว็บแอป กล่าวคือ แทนที่จะมีเว็บแอปทำ SQL โดยตรงจะเรียกใช้ REST API และนั่นคือ SQL และส่งคืนผลลัพธ์ คำถามของฉันคือ ... ทำไมจึงทำเช่นนี้? ถ้ามันจะถูกเปิดเผยต่อบุคคลที่สามฉันสามารถเข้าใจได้ ดีกว่าที่จะเปิดเผย REST API ที่ จำกัด กว่า DB แบบเต็ม แต่ในทั้งสอง บริษัท นี้ไม่ได้เป็นเช่นนั้น มีคนแนะนำฉันว่า REST API เหล่านี้ทำให้การสลับระหว่าง DBMS ง่ายขึ้น แต่นั่นไม่ใช่จุดของ abstraction layer ของฐานข้อมูล (DBAL) ใช่ไหม บางทีคุณอาจใช้ ORM เป็น DBAL ของคุณหรือคุณอาจเขียน SQL ดิบและให้ DBAL …

7
วิธีการค้นหารายการสตริง / ระเบียนที่มีขนาดใหญ่มากอย่างรวดเร็วบนฐานข้อมูล
ฉันมีปัญหาดังต่อไปนี้: ฉันมีฐานข้อมูลที่มีมากกว่า 2 ล้านบันทึก แต่ละระเบียนมีเขตข้อมูลสตริง X และฉันต้องการแสดงรายการของระเบียนที่เขตข้อมูล X ประกอบด้วยสตริงที่แน่นอน แต่ละระเบียนมีขนาดประมาณ 500 ไบต์ เพื่อให้เป็นรูปธรรมมากขึ้น: ใน GUI ของแอปพลิเคชันของฉันฉันมีช่องข้อความที่ฉันสามารถป้อนสตริงได้ ด้านบนของฟิลด์ข้อความฉันมีตารางที่แสดงเรคคอร์ด (N แรกเช่น 100) ที่ตรงกับสตริงในฟิลด์ข้อความ เมื่อฉันพิมพ์หรือลบอักขระหนึ่งตัวในฟิลด์ข้อความเนื้อหาของตารางจะต้องได้รับการอัปเดตทันที ฉันสงสัยว่ามีวิธีที่มีประสิทธิภาพในการทำเช่นนี้โดยใช้โครงสร้างดัชนีที่เหมาะสมและ / หรือแคช ตามที่อธิบายไว้ข้างต้นฉันต้องการแสดงเฉพาะรายการแรกที่ตรงกับแบบสอบถาม ดังนั้นสำหรับ N ที่มีขนาดเล็กพอก็ไม่ควรเป็นปัญหาใหญ่ในการโหลดไอเท็มที่ตรงกันจากฐานข้อมูล นอกจากนี้การแคชรายการในหน่วยความจำหลักสามารถทำให้การดึงข้อมูลเร็วขึ้น ฉันคิดว่าปัญหาหลักคือวิธีค้นหารายการที่ตรงกันอย่างรวดเร็วโดยกำหนดสตริงรูปแบบ ฉันสามารถใช้สิ่งอำนวยความสะดวกบางอย่างของ DBMS หรือฉันต้องสร้างดัชนีในหน่วยความจำด้วยตัวเองบ้างไหม? ความคิดใด ๆ แก้ไข ฉันได้ทำการทดลองครั้งแรก ฉันแบ่งระเบียนออกเป็นไฟล์ข้อความต่างๆ (ไม่เกิน 200 รายการต่อไฟล์) และวางไฟล์ในไดเรกทอรีต่าง ๆ (ฉันใช้เนื้อหาของเขตข้อมูลเดียวเพื่อกำหนดโครงสร้างไดเรกทอรี) ฉันจบด้วยไฟล์ประมาณ 50,000 ไฟล์ในไดเรกทอรีประมาณ 40000 ฉันได้เรียกใช้ …

5
ไม่มีฐานข้อมูลกลาง
ฉันมีลูกค้าที่ต้องการเว็บไซต์ / แอพมือถือ / แอพเดสก์ท็อปที่สร้างขึ้นเพื่อจัดการกับข้อมูลที่มีความอ่อนไหวมาก (ละเอียดอ่อนกว่ารายละเอียดธนาคาร / บัตร) เนื่องจากลักษณะที่ละเอียดอ่อนของข้อมูลพวกเขาไม่ต้องการบันทึกลงในฐานข้อมูลกลาง แต่พวกเขายังต้องการให้แอพของพวกเขาซิงโครไนซ์ (สมมติว่าฉันเพิ่มข้อมูลลงในแอพมือถือของฉันแล้วฉันต้องการไปที่ แอปเดสก์ท็อปและดูข้อมูลเดียวกัน) ฉันไม่สามารถคิดวิธีที่ดีและน่าเชื่อถือในการทำสิ่งนี้และฉันไม่แน่ใจว่ามีอย่างใดอย่างหนึ่ง นี่คือเหตุผลที่ฉันอยู่ที่นี่ ไม่มีใครรู้ว่าฉันสามารถจัดการกับข้อมูลนี้ได้อย่างไร ทางออกหนึ่งที่ฉันคิดคือการมีฐานข้อมูลฝั่งไคลเอ็นต์ในแต่ละแอพที่จะซิงค์ระหว่างแอพฉันเห็นว่ามันไม่น่าเชื่อถือและยุ่งเหยิง

4
วิธีป้องกันสภาวะการแข่งขันในเว็บแอปพลิเคชัน
พิจารณาเว็บไซต์อีคอมเมิร์ซที่ทั้ง Alice และ Bob กำลังแก้ไขรายการผลิตภัณฑ์ อลิซกำลังปรับปรุงคำอธิบายขณะที่ Bob กำลังอัพเดทราคา พวกเขาเริ่มแก้ไข Acme Wonder Widget ในเวลาเดียวกัน บ๊อบเสร็จสิ้นก่อนและบันทึกผลิตภัณฑ์ด้วยราคาใหม่ อลิซใช้เวลาในการอัปเดตคำอธิบายนานขึ้นและเมื่อเธอทำเสร็จเธอจะบันทึกผลิตภัณฑ์ด้วยคำอธิบายใหม่ของเธอ น่าเสียดายที่เธอเขียนทับราคาด้วยราคาเดิมซึ่งไม่ได้มีเจตนา จากประสบการณ์ของฉันปัญหาเหล่านี้พบได้ทั่วไปในเว็บแอป ซอฟต์แวร์บางตัว (เช่นซอฟต์แวร์ wiki) มีการป้องกันสิ่งนี้ - โดยปกติการบันทึกครั้งที่สองจะล้มเหลวด้วย "หน้าได้รับการปรับปรุงในขณะที่คุณกำลังแก้ไข" แต่เว็บไซต์ส่วนใหญ่ไม่มีการป้องกันนี้ เป็นที่น่าสังเกตว่าวิธีการควบคุมนั้นมีความปลอดภัยในเธรด โดยปกติแล้วพวกเขาจะใช้ธุรกรรมฐานข้อมูลซึ่งทำให้ปลอดภัยในแง่ที่ว่าถ้า Alice และ Bob พยายามที่จะบันทึกในเวลาเดียวกันแม่นยำมันจะไม่ทำให้เกิดความเสียหาย สภาพการแข่งขันเกิดขึ้นจาก Alice หรือ Bob ที่มีข้อมูลเก่าในเบราว์เซอร์ เราจะป้องกันสภาพการแข่งขันดังกล่าวได้อย่างไร? โดยเฉพาะอย่างยิ่งฉันต้องการทราบ: เทคนิคใดบ้างที่สามารถใช้ได้ เช่นการติดตามเวลาของการเปลี่ยนแปลงครั้งล่าสุด อะไรคือข้อดีข้อเสียของแต่ละคน ประสบการณ์การใช้งานที่เป็นประโยชน์คืออะไร? กรอบการป้องกันนี้มีอะไรในตัว?

7
จะแนะนำให้ใช้ ORM แทนขั้นตอนการจัดเก็บได้อย่างไร
ฉันทำงานที่ บริษัท ที่ใช้ขั้นตอนการจัดเก็บสำหรับการเข้าถึงข้อมูลทั้งหมดเท่านั้นซึ่งทำให้มันน่ารำคาญมากที่จะทำให้ฐานข้อมูลท้องถิ่นของเราตรงกันเนื่องจากทุกครั้งที่เราต้องเรียกใช้โปรแกรมใหม่ ฉันเคยใช้ ORM พื้นฐานบางอย่างในอดีตและฉันพบว่าประสบการณ์ดีขึ้นและสะอาดขึ้นมาก ฉันอยากจะแนะนำผู้จัดการฝ่ายพัฒนาและทีมอื่น ๆ ที่เราใช้ ORM เพื่อการพัฒนาในอนาคต (ทีมที่เหลือคุ้นเคยกับกระบวนการจัดเก็บเท่านั้นและไม่เคยใช้อะไรเลย) สถาปัตยกรรมปัจจุบันคือ. NET 3.5 ที่เขียนเหมือน. NET 1.1 โดยมี "god classes" ที่ใช้การดำเนินการแปลก ๆ ของ ActiveRecord และส่งกลับชุดข้อมูลที่ไม่ได้พิมพ์ซึ่งวนลูปในไฟล์ code-behind คลาสใช้งานดังนี้: class Foo { public bool LoadFoo() { bool blnResult = false; if (this.FooID == 0) { throw new Exception("FooID must be set …

4
คุณจะตัดสินใจใช้ฐานข้อมูลชนิดใด
ฉันไม่ชอบชื่อ "NoSQL" จริงๆเพราะมันไม่ได้อธิบายอะไรมาก มันบอกฉันว่าฐานข้อมูลไม่ได้ที่ผมสนใจมากขึ้นในสิ่งฐานข้อมูลที่มี ฉันคิดว่าหมวดหมู่นี้ครอบคลุมฐานข้อมูลหลายประเภทจริงๆ ฉันแค่พยายามหาแนวคิดทั่วไปเกี่ยวกับว่างานใดแต่ละฐานข้อมูลเฉพาะเป็นเครื่องมือที่ดีที่สุด สมมติฐานบางประการที่ฉันต้องการทำ (และขอให้คุณทำ): สมมติว่าคุณมีความสามารถในการจ้างวิศวกรที่ยอดเยี่ยมจำนวนมากที่มีประสบการณ์เท่าเทียมกันกับทุกเทคโนโลยีฐานข้อมูลที่มีอยู่ สมมติว่าคุณมีโครงสร้างพื้นฐานทางเทคนิคเพื่อสนับสนุนฐานข้อมูลที่กำหนด (รวมถึงเซิร์ฟเวอร์และ sysadmins ที่สามารถรองรับฐานข้อมูลดังกล่าว) สมมติว่าแต่ละฐานข้อมูลมีการสนับสนุนที่ดีที่สุดเท่าที่จะเป็นไปได้ฟรี สมมติว่าคุณมีบายอิน 100% จากการจัดการ สมมติว่าคุณมีเงินจำนวนไม่ จำกัด ที่จะทำให้เกิดปัญหา ตอนนี้ฉันรู้ว่าสมมติฐานข้างต้นกำจัดข้อควรพิจารณาที่ถูกต้องจำนวนมากที่เกี่ยวข้องกับการเลือกฐานข้อมูล แต่ฉันให้ความสำคัญกับการหาฐานข้อมูลที่ดีที่สุดสำหรับงานในระดับเทคนิคอย่างแท้จริง ดังนั้นจากสมมติฐานข้างต้นคำถามคืองานใดที่แต่ละฐานข้อมูล (รวมทั้ง SQL และ NoSQL) เป็นเครื่องมือที่ดีที่สุดและทำไม?
31 sql  database  nosql 

1
รูปแบบตัวสร้างแบบไดนามิกและการออกแบบฐานข้อมูล? [ปิด]
สมมติว่าผู้ใช้ของคุณสามารถสร้างฟอร์มบนเว็บของพวกเขาเอง (กล่องข้อความเลือก ฯลฯ ) และเผยแพร่บนเว็บเพื่อให้ผู้ใช้กรอกข้อมูล ใครบ้างมีทรัพยากรหรือคำแนะนำเกี่ยวกับวิธีการออกแบบฐานข้อมูลเพื่อผูกลงในแบบฟอร์มแบบไดนามิกหรือไม่ ตัวอย่างเช่นคุณจะสร้างตารางลูกสำหรับแต่ละฟอร์มหรือรุ่นที่แตกต่างกันของฟอร์มที่กำหนดหรือไม่

8
ส่วนหน้าสุดก่อนหรือหลังสุดก่อน ในสองข้อไหนที่เป็นระบบการออกแบบที่ดี?
ฉันมีลูกค้าตอนนี้ต้องการให้ฉันพัฒนาระบบการลงทะเบียนของโรงเรียน ตอนนี้เป็นครั้งแรกที่ฉันมีความท้าทายแบบนี้ ซอฟต์แวร์ที่ผ่านมาส่วนใหญ่ที่ฉันสร้างไม่ซับซ้อน ฉันรู้ว่าพวกคุณส่วนใหญ่ได้สร้างซอฟแวร์ที่ซับซ้อนฉันแค่ต้องการคำแนะนำของคุณเกี่ยวกับเรื่องนี้ ฉันควรออกแบบส่วนหน้าหรือส่วนหลังก่อนหรือไม่ ขอบคุณ! นี่คือข้อสรุปของบทความที่ฉันพบในอินเทอร์เน็ตเมื่อไม่นานมานี้ แค่ต้องการแบ่งปัน http://www.skitoy.com/p/front-end-vs-back-end-developers-my-take/157 นักพัฒนา Front-End และ Back-End (ใช้ของฉัน) ส่วนตัวของฉัน เป็นเรื่องของการฝึกอีกครั้งการสรุปทั่วไปของโรคหลอดเลือดสมองในวงกว้าง: นักพัฒนาส่วนหน้า โดยทั่วไปแล้วจะไม่มีระดับ CS หรือมีระดับ CS จากโรงเรียนชั้นที่ 3 ทำงานในภาษาที่คล้ายกับพื้นฐาน (ดู PHP เป็นพื้นฐาน) มีทักษะการมองเห็นในการแปลงเอกสาร Photoshop เป็น CSS / HTML / ฯลฯ มีความอดทนสูงสำหรับการเขียนโปรแกรมซ้ำเนื่องจากภาษาฟรี นักพัฒนาส่วนหลัง มีระดับ CS หรือมีประสบการณ์มากมาย ทำให้ฉันเป็นระบบมากขึ้นในวิธีการแก้ปัญหาของพวกเขา อย่ารังเกียจที่จะใช้เวลาหลายวันเพื่อค้นหาวัตถุชิ้นหนึ่งที่รั่ว ลองและสร้างเครื่องมือเพื่อแก้ปัญหา

1
เมื่อใดที่คุณควรใช้ฐานข้อมูลเทียบกับเอกสารเทียบกับกราฟ? [ปิด]
สำหรับวัตถุประสงค์ของการสนทนาลองพิจารณาสถานการณ์จำลองของ FourSquare สถานการณ์ หน่วยงาน: ผู้ใช้ สถานที่ ความสัมพันธ์: Checkins: ผู้ใช้ <-> สถานที่หลายแห่งไปมาก เพื่อน: ผู้ใช้ <-> ผู้ใช้หลายต่อหลายคน การออกแบบฐานข้อมูล สิ่งเหล่านี้มักจะมีข้อผิดพลาดโปรดชี้ให้พวกเขาเห็น RDBMS โต๊ะ: ผู้ใช้ สถานที่ เช็คอิน (แยก) เพื่อน (แยก) ข้อดี: CAP: ความสอดคล้องความพร้อมใช้งาน จุดด้อย: CAP: ความอดทนต่อการแบ่งพาร์ทิชัน schemes = โครงสร้างที่ไม่ยืดหยุ่น การจำลองแบบไม่ดี? กราฟ วัตถุที่: ผู้ใช้ สถานที่ ขอบ: เพื่อน: ผู้ใช้ <-> ผู้ใช้ เช็คอิน: ผู้ใช้ -> สถานที่ มีการประทับเวลา ข้อดี: …

2
เหตุใดจึงเก็บค่าสถานะ / enums ในฐานข้อมูลเป็นสตริงแทนที่จะเป็นจำนวนเต็ม
ฉันได้ทำการสืบค้น SQL ทิ้งของ CMS ที่มีชื่อเสียงบางตัวรวมถึง Drupal 7, Wordpress (บางรุ่นที่ค่อนข้างเก่า) และแอปพลิเคชันที่กำหนดเองบางตัวที่ใช้ Python ดัมพ์เหล่านี้ทั้งหมดมีข้อมูลที่มีแฟล็กสตริงแทนค่าจำนวนเต็ม ยกตัวอย่างเช่นสถานะการโพสต์ได้แสดงเป็นpublished, closedหรือinheritมากกว่า1, หรือ23 ฉันมีประสบการณ์ค่อนข้าง จำกัด ในการออกแบบฐานข้อมูลและฉันไม่เคยผ่าน SQL แบบง่าย ๆ มาก่อน แต่ฉันได้รับการสอนเสมอว่าฉันควรใช้ตัวเลข / จำนวนเต็มสำหรับข้อมูลเช่นนี้ ก็ชัดเจนว่าพื้นที่กินมากน้อยในฐานข้อมูลกว่ายกตัวอย่างเช่นtinyintvarchar(9) แล้วฉันจะพลาดอะไรไป? นี่ไม่ใช่การจัดเก็บข้อมูลและการสำรองข้อมูลซ้ำซ้อนหรือไม่ การเรียกดูการค้นหาและการจัดทำดัชนีจะไม่เร็วกว่านี้ไหมถ้าคอลัมน์เหล่านี้ใช้จำนวนเต็มแทนที่จะเป็นสตริง

3
วิธีการจัดเก็บข้อมูลชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ
ฉันต้องการจัดเก็บและสามารถสืบค้นข้อมูลอนุกรมเวลาจำนวนมากได้ คุณสมบัติของข้อมูลมีดังนี้: จำนวนซีรีส์: ประมาณ 12.000 (หนึ่งหมื่นสองพัน) จำนวนจุดข้อมูลทั่วโลก: ประมาณ 500,000 ต่อเดือน (ห้าร้อยล้าน) ประเภทค่าผสม: จุดข้อมูลส่วนใหญ่เป็นค่าจุดลอยตัวส่วนที่เหลือเป็นสตริง ระยะเวลาการสุ่มตัวอย่าง: ตัวแปรระหว่างซีรี่ส์และภายในซีรี่ส์ การประทับเวลา: ความแม่นยำมิลลิวินาที ระยะเวลาการเก็บข้อมูล: หลายปีโดยไม่มีการลดลงหรือการสุ่มตัวอย่าง คลังข้อมูลจะต้องถูกสร้างขึ้นในแบบเรียลไทม์ แต่มีความล่าช้าพอสมควร (~ 1 ชั่วโมง) เป็นที่ยอมรับ ข้อมูลที่ผ่านมาสามารถสร้างใหม่ได้ถ้าต้องการ แต่มีค่าใช้จ่ายสูง บางครั้ง แต่ค่อนข้างน้อยข้อมูลในอดีตบางอย่างจำเป็นต้องได้รับการอัปเดต คุณสมบัติของข้อความค้นหาที่จินตนาการ: ข้อความค้นหาส่วนใหญ่ที่มีข้อมูลจะเป็นแบบสอบถามแบบอิงตามเวลา ตั้งแต่วันหนึ่งถึงหลายเดือน / ปี 90% + จะสอบถามเกี่ยวกับข้อมูลล่าสุด ข้อกำหนดอื่น ๆ : การแก้ปัญหาจะต้องเป็นฟรีในเบียร์ฟรีและโอเพนซอร์สโดยเฉพาะอย่างยิ่ง ความคิดเริ่มต้นของฉันคือการใช้ PyTables / Pandas กับไฟล์ HDF5เพื่อเก็บแบ็คเอนด์แทนฐานข้อมูล SQL คำถาม: สมมติว่า …

3
มีรายการชื่อผู้ใช้ทั่วไปที่จะจองในระบบใหม่หรือไม่?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันต้องจองชื่อผู้ใช้ในเว็บไซต์ใหม่ของฉัน โดยทั่วไปแล้วแบ่งออกเป็นสามประเภท 1) ชื่อผู้ใช้ที่ไม่ควรมี (เช่น: ผู้ดูแลระบบผู้ใช้บริการความช่วยเหลือรูตและอื่น ๆ ) 2) ชื่อของบุคคลหรือ บริษัท ที่มีชื่อเสียงระดับสูงที่เราอาจต้องการจองในกรณีที่ปรากฏ 3) ชื่ออื่นที่ระบุโดยเราโดยตรง มันจะมีประโยชน์จริง ๆ ถ้ามีรายชื่อผู้ใช้สำหรับ 2 หมวดหมู่แรกที่มีอยู่และฉันสามารถใช้มันได้ ไม่มีใครรู้รายการดังกล่าวหรือไม่

3
รักษาผู้ใช้และโปรไฟล์ผู้ใช้ในตารางที่แตกต่างกันอย่างไร
ฉันเห็นในสองโครงการที่นักพัฒนาต้องการเก็บข้อมูลผู้ใช้ที่จำเป็นในหนึ่งตาราง (อีเมล / เข้าสู่ระบบ, แฮชรหัสผ่าน, ชื่อหน้าจอ) และส่วนที่เหลือของโปรไฟล์ผู้ใช้ที่ไม่จำเป็นในอีก (วันที่สร้างประเทศ ฯลฯ ) โดยไม่จำเป็นฉันหมายถึงว่าข้อมูลนี้จำเป็นในบางครั้งเท่านั้น ผลประโยชน์ที่ชัดเจนคือถ้าคุณใช้ ORM ในการค้นหาฟิลด์ที่น้อยกว่าจะเห็นได้ชัดว่าดี แต่จากนั้นคุณสามารถแมปสองเอนทิตีลงในตารางเดียวกันและสิ่งนี้จะช่วยให้คุณไม่ต้องค้นหาสิ่งที่คุณไม่ต้องการ (ในขณะที่สะดวกกว่า) ไม่มีใครรู้ว่าประโยชน์อื่น ๆ ของการเก็บสิ่งเหล่านี้ในสองตาราง?

3
SQL แบบอินไลน์ยังจัดอยู่ในประเภทการปฏิบัติที่ไม่ดีในขณะนี้ที่เรามี Micro ORMs หรือไม่?
นี่เป็นคำถามปลายเปิดเล็กน้อย แต่ฉันต้องการความคิดเห็นบางอย่างเนื่องจากฉันโตขึ้นในโลกที่สคริปต์ SQL แบบอินไลน์เป็นบรรทัดฐานจากนั้นเราทุกคนต่างก็ตระหนักถึงปัญหาการฉีด SQL ที่ใช้กันมากและ sql นั้นบอบบางเพียงใด ทำการปรับแต่งสตริงทั่วทุกที่ จากนั้นก็เริ่มรุ่งอรุณของ ORM ซึ่งคุณได้อธิบายการสืบค้นไปยัง ORM และปล่อยให้มันสร้าง SQL ของตัวเองซึ่งในหลายกรณีนั้นไม่เหมาะสมแต่ปลอดภัยและง่าย สิ่งที่ดีอีกอย่างเกี่ยวกับ ORMs หรือเลเยอร์สิ่งที่เป็นนามธรรมของเลเยอร์คือว่า SQL นั้นถูกสร้างขึ้นด้วยเอ็นจิ้นฐานข้อมูลของมันดังนั้นฉันสามารถใช้ Hibernate / Nhibernate กับ MSSQL, MYSQL และรหัสของฉันไม่เคยเปลี่ยน ตอนนี้ก้าวไปข้างหน้าอย่างรวดเร็วจนถึงปัจจุบันซึ่ง Micro ORM ดูเหมือนจะชนะมากกว่านักพัฒนาอื่น ๆ ฉันสงสัยว่าทำไมเราถึงได้นำ U-Turn มาใช้กับเรื่องทั้งหมดในตาราง ฉันต้องยอมรับว่าฉันชอบความคิดที่ว่าไม่มีไฟล์ ORM config และความสามารถในการเขียนข้อความค้นหาของฉันในลักษณะที่เหมาะสมที่สุด แต่รู้สึกเหมือนฉันกำลังเปิดตัวเองกลับสู่ช่องโหว่เก่า ๆ เช่นการฉีด SQL และฉันก็ผูกตัวเอง เอ็นจิ้นฐานข้อมูลหนึ่งดังนั้นถ้าฉันต้องการซอฟต์แวร์ของฉันเพื่อสนับสนุนเอนจินฐานข้อมูลหลายตัวฉันจะต้องทำการแฮ็คสตริงเพิ่มเติมซึ่งดูเหมือนว่าจะเริ่มทำให้โค้ดอ่านไม่ได้และเปราะบางยิ่งขึ้น (ก่อนที่ใครบางคนจะกล่าวถึงมันฉันรู้ว่าคุณสามารถใช้อาร์กิวเมนต์ที่อิงพารามิเตอร์กับ micro orms ส่วนใหญ่ที่ให้ความคุ้มครองในกรณีส่วนใหญ่จากการฉีด …
26 database  sql  orm 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.