1
เราใช้รูปแบบพื้นที่เก็บข้อมูลใช่มั้ย
เรากำลังใช้คลาสที่แยกจากกัน-repositoryเพื่อต่อท้ายเรียกข้อมูลจากฐานข้อมูล สำหรับแต่ละตารางที่เก็บของตนเอง ตัวอย่างเช่นเรามีcustomerrepositoryคลาสที่มีวิธีการทุกอย่างเพื่อดึงลูกค้าและvacancyrepositoryที่มีวิธีการทุกชนิดเพื่อดึงตำแหน่งที่ว่าง ฉันมีคำถามสองข้อเกี่ยวกับวิธีการทำสิ่งนี้: วิธีรับข้อมูลที่ครอบคลุมหลายตาราง ตัวอย่างเช่นฉันมีหน้าจอที่แสดงลูกค้าทั้งหมดที่ยังไม่ได้สร้างตำแหน่งว่าง ที่สามารถcustomerrepositoryใช้วิธีการจากvacancyrespositoryหรือทำทั้งสองอย่างที่เก็บกลับผลลัพธ์และจะมีระดับที่สูงขึ้นในลำดับชั้น (ชื่อให้ของมันdataservice) ที่ได้รับผลจากทั้งเก็บและรวมเป็น 1 ผล? พื้นที่เก็บข้อมูลสามารถจัดการตรรกะได้เท่าใด ฉันคิดว่ามันโอเคที่จะใช้ 'where active == true' ในที่เก็บเพื่อเรียกใช้เฉพาะเร็กคอร์ดที่ใช้งานอยู่หรือว่าควรจัดการตรรกะง่ายๆโดยคลาสที่สูงกว่าในลำดับชั้น (ลองตั้งชื่อ a dataservice)? ตัวอย่างที่ฉันพบตอนนี้ก็คืออันนี้: เรามีรายการคำถามซึ่งมีหนึ่งคำถามขึ้นไป คำถามสามารถมีผลลัพธ์ซึ่งถืออยู่ในตารางแยกต่างหาก ดังนั้นเมื่อคุณต้องการดึงผลลัพธ์รวมของรายการคำถามคุณต้องรวมข้อมูลจากquestionlistตารางตารางคำถามและquestionstatusตาราง ตอนนี้เรามีที่เก็บข้อมูล 3 แห่งสำหรับตารางเหล่านี้ ถ้าฉันจะถามquestionlistrepositoryสิ่งที่เป็นผลรวมสำหรับรายการหมายเลข 12 มันจะต้องได้รับข้อมูลจากสองที่เก็บอื่น ๆ และด้วยเหตุนี้มีตรรกะบางอย่างในนั้นที่ได้รับอนุญาต? หรือมีquestionlistdataserviceที่รู้ที่เก็บที่จะใช้? อีกอย่างหนึ่ง: ที่เก็บข้อมูลของเราสามารถส่งผลIQueryableให้บริการโทรศัพท์สามารถรวมผลลัพธ์ได้อย่างง่ายดาย แต่ถ้าเป็นกรณีนี้ฉันไม่คิดว่ามันเป็นความคิดที่ดีที่จะดึงเนื้อหาทั้งหมดของตารางทั้งสามจาก ฐานข้อมูล