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

การทำแผนที่วัตถุเชิงสัมพันธ์ (ORM) เป็นเทคนิคสำหรับการทำแผนที่ระหว่างระบบเชิงวัตถุและฐานข้อมูลเชิงสัมพันธ์

14
ประโยชน์ของการใช้ฐานข้อมูลนามธรรมโดย ORM คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ฉันเริ่มใช้ ORM ตามกรอบที่ฉันเลือกและถึงแม้ว่าฉันชอบความคิดของเลเยอร์ที่เพิ่มขึ้นของสิ่งที่เป็นนามธรรมให้ ORM ฉันก็เริ่มที่จะตระหนักถึงสิ่งนี้หมายถึงอะไรจริงๆ นั่นหมายความว่าฉันไม่ได้ทำงานกับฐานข้อมูลของฉัน (mysql) อีกต่อไปและคุณสมบัติเฉพาะของ mysql ก็หมดไปนอกหน้าต่างเหมือนไม่มีอยู่จริง แนวคิดของ ORM คือพยายามที่จะช่วยฉันด้วยการทำให้ทุกอย่างไม่เชื่อเรื่องฐานข้อมูล ฟังดูดี แต่บ่อยครั้งมีเหตุผลที่ฉันเลือกระบบฐานข้อมูลที่เฉพาะเจาะจง แต่ด้วยการไปยังฐานข้อมูลผู้ไม่เชื่อเรื่องพระเจ้า ORM จะใช้ตัวหารร่วมที่ต่ำที่สุดซึ่งหมายความว่าฉันจะได้รับชุดฟีเจอร์ที่เล็กที่สุด (อันที่รองรับโดยฐานข้อมูลทั้งหมด) ถ้าฉันรู้ว่าในระยะยาวฉันจะไม่เปลี่ยนฐานข้อมูลพื้นฐาน ทำไมไม่เข้าถึงคุณลักษณะเฉพาะฐานข้อมูลด้วย

6
ฉันควรใช้ขั้นตอนการจัดเก็บเมื่อใด
ถ้าฉันมีตรรกะทางธุรกิจทั้งหมดของฉันในรหัสและใช้ประโยชน์จาก Entity Framework ในสถานการณ์ใด (ถ้ามี) ฉันจะย้ายตรรกะทางธุรกิจบางอย่างไปยังขั้นตอนการจัดเก็บดีกว่าแทนที่จะเก็บไว้ในรหัสทั้งหมดหรือไม่ เพื่อความชัดเจนฉันหมายถึงร่วมกับการตั้งค่าปัจจุบัน (ตรรกะทางธุรกิจในรหัส) ไม่ใช่แทนที่จะเป็น ฉันได้เห็นคำถามคล้าย ๆ กันหลายข้อที่ถามถึงข้อดีและข้อเสียของการมีตรรกะทางธุรกิจทั้งหมดในขั้นตอนการจัดเก็บ แต่ฉันไม่พบอะไรมากเกี่ยวกับการใช้ขั้นตอนการจัดเก็บเท่าที่จำเป็นสำหรับตรรกะกรณีขอบ ในรหัส ถ้ามันสร้างความแตกต่างฉันกำลังใช้ MSSQL และ Entity Framework นี่คือสถานการณ์ที่ฉันใช้โพรซีเดอร์ที่เก็บไว้ก่อนหน้านี้: รายงานที่ซับซ้อนซึ่งใช้เวลาไม่กี่นาทีในการเรียกใช้ (นี่คือหน้าเว็บในแอปพลิเคชัน) ฉันพบว่าฉันสามารถเขียน SQL ที่มีประสิทธิภาพมากขึ้น (ใช้เวลาเพียงไม่กี่วินาทีในการเรียกใช้) กว่าที่ LINQ จัดหาให้ เว็บแอปพลิเคชันจำเป็นต้องอ่านและเขียนลงในตารางไม่กี่ตารางในฐานข้อมูลแยกต่างหากซึ่งมีข้อมูลที่ละเอียดอ่อนจำนวนมากซึ่งไม่เกี่ยวข้องกับแอปพลิเคชัน แทนที่จะให้สิทธิ์เข้าถึงทุกสิ่งฉันใช้กระบวนงานที่เก็บไว้ซึ่งทำสิ่งที่ต้องการเท่านั้นและส่งคืนข้อมูลที่ จำกัด เท่านั้น เว็บแอปพลิเคชันสามารถเข้าถึงขั้นตอนการจัดเก็บนี้เท่านั้นโดยไม่ต้องเข้าถึงตารางใด ๆ เป็นต้น โพสต์อื่นที่ฉันได้ดูก่อนถามคำถามนี้: ขั้นตอนการจัดเก็บวิธีปฏิบัติที่ไม่ดีที่หนึ่งใน บริษัท ที่ปรึกษาด้านไอทีรายใหญ่ที่สุดในโลก? ข้อดีข้อเสียของการถือตรรกะทางธุรกิจทั้งหมดในขั้นตอนการจัดเก็บในเว็บแอปพลิเคชัน /programming/15142/what-are-the-pros-and-cons-to-keeping-sql-in-stored-procs-versus-code /dba/2450/what-are-the-arguments-against-or-for-putting-application-logic-in-the-database/2452#2452 เมื่อใดที่จะไม่ใช้ ORM และชอบวิธีการจัดเก็บ?

4
รุ่นหนาเทียบกับ ตรรกะทางธุรกิจคุณจะแยกความแตกต่างที่ไหน
วันนี้ฉันได้มีการถกเถียงกันอย่างดุเดือดกับนักพัฒนาคนอื่นในองค์กรของฉันเกี่ยวกับสถานที่และวิธีการเพิ่มวิธีในคลาสที่แมปฐานข้อมูล เราใช้sqlalchemyและส่วนสำคัญของฐานรหัสที่มีอยู่ในโมเดลฐานข้อมูลของเรานั้นเป็นเพียงเล็กน้อยของคุณสมบัติที่แมปด้วยชื่อคลาสการแปลเชิงกลจากตารางฐานข้อมูลไปยังวัตถุหลาม ในการโต้แย้งตำแหน่งของฉันคือว่าค่าหลักของการใช้ ORM คือคุณสามารถแนบพฤติกรรมและอัลกอริทึมในระดับต่ำกับคลาสที่แมป โมเดลเป็นคลาสแรกและถาวรเป็นอันดับที่สอง (อาจคงอยู่โดยใช้ xml ในระบบไฟล์คุณไม่จำเป็นต้องสนใจ) มุมมองของเขาคือพฤติกรรมใด ๆ ที่เป็น "ตรรกะทางธุรกิจ" และจำเป็นต้องเป็นของทุกที่ แต่ในรูปแบบถาวรซึ่งจะใช้สำหรับการคงอยู่ของฐานข้อมูลเท่านั้น ฉันคิดว่าแน่นอนว่ามีความแตกต่างระหว่างตรรกะทางธุรกิจคืออะไรและควรแยกออกจากกันเนื่องจากมีการแยกจากระดับล่างของวิธีการใช้งานและตรรกะโดเมนซึ่งฉันเชื่อว่าเป็นนามธรรมที่จัดทำโดยคลาสโมเดล เป็นที่ถกเถียงกันในย่อหน้าก่อนหน้า แต่ฉันมีเวลายากที่จะวางนิ้วลงบนสิ่งที่เป็น ฉันมีความรู้สึกที่ดีขึ้นเกี่ยวกับสิ่งที่อาจเป็น API (ซึ่งในกรณีของเราคือ HTTP "ReSTful") ผู้ใช้จะเรียกใช้ API กับสิ่งที่พวกเขาต้องการทำแตกต่างจากสิ่งที่พวกเขาได้รับอนุญาตให้ทำ เสร็จแล้ว tl; dr: ประเภทใดที่สามารถหรือควรไปในวิธีการในคลาสที่แมปเมื่อใช้ ORM และสิ่งที่ควรจะออกไปอยู่ในอีกชั้นหนึ่งของสิ่งที่เป็นนามธรรม?

8
คุณควรละทิ้งกรอบงาน ORM เมื่อคุณต้องการใช้การดำเนินการแบบกลุ่ม?
นี่เป็นสถานการณ์ทั่วไป: คุณต้องใช้การดำเนินการเป็นกลุ่มในแอปพลิเคชันที่ใช้กรอบ ORM หลังจากผ่านไปครั้งแรกคุณสังเกตเห็นปัญหาด้านประสิทธิภาพที่สำคัญ นี่คือคำถามของฉัน: ในสถานการณ์เช่นนี้คุณควรสนับสนุนโซลูชันที่มี SQL ดิบหรือไม่ หรือมีรูปแบบการออกแบบที่รู้จักกันดีซึ่งสามารถช่วยคุณลดปัญหาที่มักเกี่ยวข้องกับการดำเนินงานจำนวนมากด้วยกรอบ ORM หรือไม่ แก้ไข: ฉันไม่ได้ถามว่าคุณควรลบ ORM framework ออกจากแอพพลิเคชันทั้งหมดหรือไม่ ฉันกำลังถาม: คุณควรละทิ้งกรอบ ORM สำหรับแอปพลิเคชั่นเล็ก ๆ นี้หรือไม่?
15 orm  heuristics 

3
ORM ส่งเสริมการลดขนาดฐานข้อมูลหรือไม่
ทั้ง Doctrine และ Propel ใช้ประโยชน์จากการสืบทอดตารางแบบเดี่ยวและเป็นรูปธรรมในการทำแผนที่ความสัมพันธ์ของวัตถุ อดีตเห็นเขตข้อมูลที่เป็นไปได้ทั้งหมดในแผนผังชั้นที่แมปกับตารางเดียว - ในขณะที่หลังแมปแต่ละคลาสกับตารางที่เฉพาะเจาะจงการทำซ้ำเขตข้อมูลทั่วไปในลำดับชั้นการสืบทอด ในขณะที่สิ่งนี้เอื้อต่อเครื่องมือ ORM มันแนะนำการออกแบบฐานข้อมูลที่ไม่ดีสำหรับฉัน รูปแบบการออกแบบที่ไม่ดีเหล่านี้มีผลบังคับใช้กับฐานข้อมูลหรือไม่

5
วิธีแก้ไขปัญหาการอ้างอิงแบบวงกลมด้วย JSON และ Entity
ฉันได้ทำการทดลองกับการสร้างเว็บไซต์ที่ใช้ประโยชน์จาก MVC กับ JSON สำหรับเลเยอร์งานนำเสนอและกรอบงานเอนทิตีสำหรับโมเดลข้อมูล / ฐานข้อมูล ปัญหาของฉันมาพร้อมกับการทำให้วัตถุโมเดลของฉันเป็นอนุกรมลงใน JSON ฉันใช้รหัสวิธีแรกในการสร้างฐานข้อมูลของฉัน เมื่อทำโค้ดวิธีแรกความสัมพันธ์แบบหนึ่งต่อหลายคน (parent / child) ต้องการให้เด็กมีการอ้างอิงกลับไปที่ parent (รหัสตัวอย่างของฉันเป็นตัวพิมพ์ผิด แต่คุณได้รับรูปภาพ) class parent { public List<child> Children{get;set;} public int Id{get;set;} } class child { public int ParentId{get;set;} [ForeignKey("ParentId")] public parent MyParent{get;set;} public string name{get;set;} } เมื่อส่งคืนวัตถุ "พาเรนต์" ผ่าน JsonResult ข้อผิดพลาดการอ้างอิงแบบวงกลมจะถูกส่งออกไปเนื่องจาก "child" มีคุณสมบัติของคลาสพาเรนต์ ฉันได้ลองใช้ …

5
สำหรับการตรวจสอบความถูกต้องของข้อมูลสนับสนุน ORM ควรมีการบังคับใช้ข้อ จำกัด ในฐานข้อมูลด้วยหรือไม่
ฉันมักใช้ข้อ จำกัด ในระดับฐานข้อมูลเพิ่มเติมจากรุ่น (ActiveRecord) ของฉัน แต่ฉันสงสัยว่าสิ่งนี้จำเป็นจริงๆหรือ? พื้นหลังเล็กน้อย ฉันเพิ่งต้องทดสอบหน่วยวิธีการสร้างประทับเวลาอัตโนมัติขั้นพื้นฐานสำหรับรุ่น โดยปกติแล้วการทดสอบจะสร้างตัวอย่างของแบบจำลองและบันทึกโดยไม่มีการตรวจสอบความถูกต้อง แต่มีเขตข้อมูลที่จำเป็นอื่น ๆ ที่ไม่สามารถลบล้างได้ในคำจำกัดความของตารางหมายความว่าฉันไม่สามารถบันทึกอินสแตนซ์แม้ว่าฉันจะข้ามการตรวจสอบ ActiveRecord ดังนั้นฉันคิดว่าฉันควรลบข้อ จำกัด ดังกล่าวออกจากฐานข้อมูลตัวเองแล้วปล่อยให้ ORM จัดการกับมันหรือไม่? ข้อได้เปรียบที่เป็นไปได้ถ้าฉันข้ามข้อ จำกัด ใน db, imo - สามารถแก้ไขกฎการตรวจสอบในรูปแบบโดยไม่ต้องย้ายฐานข้อมูล สามารถข้ามการตรวจสอบในการทดสอบ ข้อเสียที่เป็นไปได้? หากเป็นไปได้ว่าการตรวจสอบความถูกต้องของ ORM ล้มเหลวหรือถูกข้ามไปฐานข้อมูลจะไม่ตรวจสอบข้อ จำกัด คุณคิดอย่างไร? แก้ไขในกรณีนี้ฉันใช้Yii Frameworkซึ่งสร้างแบบจำลองจากฐานข้อมูลดังนั้นกฎฐานข้อมูลจึงถูกสร้างขึ้นด้วย
13 database  orm  validation  dry 

5
เมื่อใดที่จะไม่ใช้ ORM และชอบวิธีการจัดเก็บ?
ฉันใช้ PetaPoco micro-ORM เป็นเรื่องง่ายและปลอดภัยในการทำงานกับฐานข้อมูลโดยใช้เครื่องมือ ORM แต่สิ่งเดียวที่ฉันเกลียดคือรหัสพิเศษ ฉันเคยใส่รหัสส่วนใหญ่ในฐานข้อมูลของตัวเองและใช้คุณสมบัติ RDBMS ทั้งหมดเช่น Stored Procedure, Triggers เป็นต้นซึ่งมันถูกสร้างขึ้นเพื่อจัดการที่ดีขึ้น ฉันต้องการที่จะรู้ว่าเมื่อใดที่จะไม่ใช้ ORM มากกว่าขั้นตอนการจัดเก็บ / ทริกเกอร์และในทางกลับกัน

4
คุณคิดอย่างไรเกี่ยวกับเครื่องมือติดตา Java ใหม่นั่นไม่ใช่ ORM จริง ๆ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา วิริยะใน Java ในช่วงหลายปีที่ผ่านมาฉันได้รวบรวมประสบการณ์ในด้านการคงอยู่ของนามธรรมใน Java โดยใช้แนวคิดเช่น EJB 2.0, Hibernate, JPA และที่ปลูกในบ้าน พวกเขาดูเหมือนว่าฉันจะมีโค้งการเรียนรู้ที่สูงชันและความซับซ้อน นอกจากนี้ในฐานะที่เป็นแฟนตัวยงของ SQL ฉันคิดว่าตัวแบบนามธรรมจำนวนมากให้นามธรรมที่เป็นนามธรรมมากกว่า SQL สร้างแนวคิดเช่น "เกณฑ์", "เพรดิเคต", "ข้อ จำกัด " ที่เป็นแนวคิดที่ดีมาก แต่ไม่ใช่ SQL แนวคิดทั่วไปของการคงอยู่ที่เป็นนามธรรมใน Java ดูเหมือนจะเป็นไปตามแบบจำลองเชิงวัตถุสัมพันธ์ที่ RDBMS จะตรงกับโลก OO การถกเถียงกันเรื่อง ORM นั้นเป็นเรื่องทางอารมณ์มาโดยตลอดเพราะดูเหมือนว่าจะไม่มีทางแก้ปัญหาเดียวที่เหมาะกับทุกคน jOOQ ความชอบส่วนตัวของฉันในการหลีกเลี่ยงปัญหาที่เกี่ยวกับออมคือการยึดติดกับโลกสัมพันธ์ ตอนนี้การเลือกกระบวนทัศน์ของตัวแบบข้อมูลไม่ควรเป็นหัวข้อของการอภิปรายเนื่องจากเป็นความชอบส่วนตัวหรือเรื่องของแบบจำลองข้อมูลที่เหมาะสมกับปัญหาที่เป็นรูปธรรม การอภิปรายผมอยากจะเริ่มต้นอยู่ที่ประมาณเครื่องมือติดตาของตัวเองมากที่เรียกว่าjOOQ ฉันออกแบบ jOOQ เพื่อให้ข้อดีส่วนใหญ่ของเครื่องมือการคงอยู่ที่ทันสมัยมี: ภาษาเฉพาะโดเมนขึ้นอยู่กับ SQL …
12 java  orm  database  linq 

5
ถ้า Repository Pattern overkill สำหรับ ORM สมัยใหม่ (EF, nHibernate) สิ่งที่เป็นนามธรรมที่ดีกว่าคืออะไร?
ฉันเพิ่งอ่านข้อโต้แย้งจำนวนมากต่อต้านการใช้รูปแบบพื้นที่เก็บข้อมูลกับ Entity Framework ORM ที่ทรงพลังเนื่องจากมีการรวมฟังก์ชั่นที่คล้ายกับพื้นที่เก็บข้อมูลพร้อมกับฟังก์ชั่นหน่วยการทำงานเช่นกัน อีกข้อโต้แย้งต่อการใช้รูปแบบสำหรับสถานการณ์เช่นการทดสอบหน่วยคือรูปแบบที่เก็บเป็นสิ่งที่เป็นนามธรรมเนื่องจากการใช้งานทั่วไปมีประโยชน์มากขึ้น IQueryable ข้อโต้แย้งเกี่ยวกับการใช้รูปแบบพื้นที่เก็บข้อมูลมีเหตุผลสำหรับฉัน แต่วิธีการทางเลือกของ abstractions ที่แนะนำมักทำให้เกิดความสับสนมากขึ้นและดูเหมือนจะเกินความเป็นปัญหาเช่นกัน วิธีการแก้ปัญหาของ Jimmy Bogards ดูเหมือนจะเป็นการผสมผสานของนามธรรมที่ออกไป แต่ยังแนะนำสถาปัตยกรรมของเขาเอง https://lostechies.com/jimmybogard/2012/10/08/favor-query-objects-over-repositories/ อีกตัวอย่างของที่เก็บที่ไม่จำเป็น .... แต่ใช้สถาปัตยกรรมของฉัน! http://blog.gauffin.org/2012/10/22/griffin-decoupled-the-queries/ อื่น ... http://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework ฉันไม่พบวิธีการแทนที่ที่ชัดเจนหรือทางเลือกแทนวิธีการเก็บข้อมูลแบบ "ซับซ้อนมากเกินไป" ซึ่งไม่ได้มีการออกแบบตัวเองมากกว่า

3
การสร้างเลเยอร์ของสิ่งที่เป็นนามธรรมเหนือเลเยอร์ ORM
ฉันเชื่อว่าถ้าคุณมีที่เก็บของคุณใช้ ORM ซึ่งมันมีนามธรรมเพียงพอจากฐานข้อมูล อย่างไรก็ตามที่ที่ฉันทำงานอยู่ตอนนี้บางคนเชื่อว่าเราควรมีเลเยอร์ที่เป็นนามธรรม ORM ในกรณีที่เราต้องการเปลี่ยน ORM ในภายหลัง มันจำเป็นจริงๆหรือเป็นเรื่องง่ายที่จะสร้างเลเยอร์ที่สามารถใช้งานกับ ORM จำนวนมากได้หรือไม่? แก้ไข เพียงเพื่อให้รายละเอียดเพิ่มเติม: เรามีคลาส POCO และคลาสเอนทิตีที่แมปกับ AutoMapper คลาสเอนทิตีถูกใช้โดยเลเยอร์ Repository เลเยอร์ที่เก็บจากนั้นใช้เลเยอร์เพิ่มเติมของสิ่งที่เป็นนามธรรมเพื่อสื่อสารกับ Entity Framework เลเยอร์ธุรกิจไม่มีทางเข้าถึงโดยตรงไปยัง Entity Framework แม้ว่าจะไม่มีเลเยอร์เพิ่มเติมของสิ่งที่เป็นนามธรรมเหนือ ORM สิ่งนี้จำเป็นต้องใช้เลเยอร์บริการที่ผู้ใช้เลเยอร์พื้นที่เก็บข้อมูล ในทั้งสองกรณีชั้นธุรกิจจะถูกแยกออกจาก ORM โดยสิ้นเชิง อาร์กิวเมนต์หลักคือสามารถเปลี่ยน ORM ได้ในอนาคต เนื่องจากมันแปลเป็นภาษาท้องถิ่นภายในเลเยอร์ Repository สำหรับฉันมันแยกกันอยู่แล้วและฉันไม่เห็นว่าทำไมเลเยอร์ abstraction เพิ่มเติมจึงต้องมีรหัส "คุณภาพ"
12 database  orm 

8
การรวมโปรแกรมมิงและเคียวรีฐานข้อมูล [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา พิจารณาบทช่วยสอนทั่วไปสำหรับภาษาการเขียนโปรแกรมเชิงวัตถุเช่น C ++ หรือ Java: สร้างระบบการประมวลผลคำสั่งง่ายๆด้วยวัตถุที่แสดงถึงบัญชีคำสั่งซื้อรายการอื่น ๆ (หรือสิ่งที่เทียบเท่าหรือมากกว่านั้น) ทำให้ความรู้สึกเป็นธรรมชาติสมบูรณ์แบบ แต่ช้างที่โต๊ะอาหารคือมันไม่จริงเพราะสิ่งเหล่านี้เป็นวัตถุในหน่วยความจำ ในระบบจริงบัญชีคำสั่งซื้อและอื่น ๆไม่ได้อยู่ในหน่วยความจำจริง ๆพวกเขาอาศัยอยู่ในฐานข้อมูลด้วยการเป็นตัวแทนของหน่วยความจำเพียงกระจกที่มีอายุสั้น คุณสามารถเขียนโค้ดจำนวนมากด้วยตัวคุณเองเพื่ออ่านและเขียนจากฐานข้อมูล แต่นั่นเป็นเรื่องที่น่าเบื่อและมีข้อผิดพลาดที่ไม่มีใครทำจริง ทุกคนลงเอยด้วยการใช้ ORM แต่สิ่งเหล่านี้มีปัญหาในสิทธิของตนเองที่มีชื่อเสียงเรียกว่า 'เวียดนามของอุตสาหกรรมของเรา' ฉันไม่คิดว่าที่ไม่ตรงกันระหว่างวัตถุและความสัมพันธ์ให้มากที่สุดเท่าที่ไม่ตรงกันระหว่างการเขียนโปรแกรมภาษาและฐานข้อมูลเป็นสิ่งที่แยกต่างหากที่ไม่ทราบเกี่ยวกับแต่ละอื่น ๆ การคาดเดา: การแก้ปัญหาคือการมีภาษาเดียวที่เป็นทั้งภาษาโปรแกรมและฐานข้อมูลแบบสอบถามซึ่งจะต้องใช้ภาษารันไทม์ยังเป็นฐานข้อมูลและคอมไพเลอร์ JIT ยังเป็นเครื่องมือเพิ่มประสิทธิภาพแบบสอบถาม นั่นคือบทสรุปของปัญหาที่ฉันเห็น คำถามของฉันคือมีใครเลย สร้างขึ้นจริงเช่นระบบแบบครบวงจร พยายาม แต่ล้มเหลวในการสร้างระบบแบบครบวงจร เขียนสิ่งสำคัญในหัวข้อว่าคุณจะสร้างสิ่งนั้นได้อย่างไรหรือเพราะเหตุใด หาทางเลือกอื่นในการแก้ปัญหาหรือไม่

3
DDD กับ ORM ตรรกะทางธุรกิจควรไปที่ใด
ฉันเคยใช้เครื่องมือ MDA (สถาปัตยกรรมที่ขับเคลื่อนด้วยโมเดล) ในอดีตที่เราทำโมเดลผ่าน UML และสิ่งนี้ได้สร้างเอนทิตีธุรกิจ (โมเดลโดเมนของเรา) และ ORM (การทำแผนที่ ฯลฯ ) ท่ามกลางสิ่งอื่น ๆ รหัสธุรกิจและบริการจำนวนมากที่ทำงานบนโดเมนนั้นเป็นส่วนหนึ่งของแบบจำลองและที่เก็บของเราส่งคืนเอนทิตีธุรกิจ (ดังนั้นจึงเป็นไปไม่ได้ที่จะเปลี่ยนไปใช้ ORM อื่น (ไม่ใช่ที่เราต้องการ)) อย่างไรก็ตามตอนนี้ฉันกำลังเริ่มโครงการและฉันต้องการคิดในแง่ของ DDD จนถึงตอนนี้ฉันรู้สึกราวกับว่าฉันวางตรรกะทางธุรกิจของฉันในรูปแบบโดเมนของฉันและผ่านที่เก็บฉันจะทำงานร่วมกับ ORM (ซึ่งฉันเคยเลือก) อย่างไรก็ตามถ้าฉันต้องการใช้เครื่องมือ MDA สำหรับส่วน ORM ของแอปพลิเคชันต่อไปโมเดลที่สร้างขึ้นที่นี่จะเป็นโลหิตจางมาก (เช่นไม่มีตรรกะทางธุรกิจ) ในทำนองเดียวกันถ้าฉันใช้ Entity framework (.net) หรือ NHibernate สำหรับ ORM ของฉันมันก็จะเป็นแบบจำลองโลหิตจางด้วย? ฉันไม่แน่ใจว่าคุณจะใช้ตรรกะทางธุรกิจที่ใดถ้าฉันใช้ NHibernate ฉันถูกต้องในการคิดแบบนี้ในคำอื่น ๆ ที่มี DDD ตรรกะทางธุรกิจทั้งหมดในโดเมนและเพียงแค่ใช้ ORM สำหรับการคงอยู่ผ่านทางที่เก็บ?

6
โครงการพัฒนาเว็บประเภทใดที่ได้รับประโยชน์จากการใช้ ORM
ฉันจะเริ่มด้วยการบอกว่าฉันได้ทำฐานข้อมูลของฉัน 95% โดยใช้ SQL เมื่อเร็ว ๆ นี้ฉันได้ทำการตรวจสอบ ORM ต่างๆเช่น NHibernate และ Doctrine ฉันสามารถเห็นข้อดีของการไม่จำเป็นต้องรู้ SQL และความสามารถในการพกพาฐานข้อมูลที่ ORM ให้ แต่ฉันสามารถเห็นได้ว่าการรู้ว่า SQL จะทำให้ ORM ทำงานได้อย่างมีประสิทธิภาพมากขึ้นและฉันสามารถคิดได้เพียงครั้งเดียวในอาชีพของฉันว่าการเปลี่ยนแปลงครั้งใหญ่ที่สุดของแอปพลิเคชันจะเป็นผู้จำหน่ายฐานข้อมูล เนื่องจากฉันรู้สึกสะดวกสบายในการเขียน SQL และเห็นได้ชัดว่าไม่ได้ตระหนักถึงประโยชน์ที่ได้รับการสอนบ่อยครั้งในการใช้ ORM คำถามของฉันสำหรับผู้ใช้ ORM ที่หนักหน่วงคือ: โครงการพัฒนาเว็บประเภทใดที่ได้รับประโยชน์สูงสุดจากการใช้ ORM

7
Entity Framework พร้อมสำหรับการผลิตหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังมองหา Entity Framework สำหรับโครงการใหม่ที่ฉันจะเข้าร่วมและเป็นส่วนหนึ่งของงานวิจัยของฉันฉันขอให้ผู้เชี่ยวชาญในอุตสาหกรรมว่ามีความมั่นคงและพร้อมสำหรับการใช้งาน 'โลกแห่งความจริง' ในการทำงานคือ: EF NHibernate DevExpress XPO ฉันมีประสบการณ์อย่างมากกับ XPO แล้ว แต่ฉันก็ไม่พอใจกับมันเป็นพิเศษ

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