ฉันจะเพิ่มเงื่อนไขในการสืบค้นเอนทิตี Drupal 9 โดยใช้การสืบค้นเอนทิตีอื่นในเอนทิตีประเภทอื่นได้อย่างไร
ฉันจะอธิบายคำถามโดยอธิบายกรณีการใช้งานเฉพาะหนึ่งกรณี แม้ว่าฉันไม่คิดว่าการคิดกรณีการใช้งานที่เป็นไปได้จำนวนหนึ่งๆ จะไม่ใช่เรื่องยาก
แอปพลิเคชันสำหรับกรณีการใช้งานนี้ติดตามบทความในวรรณกรรมทางการแพทย์ที่ตีพิมพ์ บทความจะแสดงด้วยประเภทเอนทิตีแบบกำหนดเองซึ่งจะติดตามเมื่อนำเข้ามาในระบบ ได้รับข้อความทั้งหมดของบทความหรือไม่ หัวข้อใดถูกกำหนดให้กับบทความรอบการตรวจทาน เมื่อใดและในวารสารใด เผยแพร่และข้อมูลอื่น ๆ อีกมากมาย
มีเอนทิตีประเภทที่สองที่กำหนดเองเพื่อแสดงชุดงาน ("ชุดงาน") ของบทความที่ได้รับมอบหมายสำหรับการตรวจทาน การติดตามเมื่อมีการกำหนดชุดงาน สำหรับหัวข้อใด และผู้เชี่ยวชาญด้านมะเร็งวิทยาคนใด ตลอดจนผลลัพธ์ของการตรวจทานเหล่านั้นเป็นอย่างไร บทความสามารถกำหนดให้กับชุดการตรวจทานได้หลายชุด โดยแต่ละชุดมีผู้ตรวจทานที่ได้รับมอบหมายหลายคน และชุดการตรวจทานแต่ละชุดสามารถขอการตรวจทานสำหรับบทความจำนวนเท่าใดก็ได้
โมดูลการค้นหาสำหรับแอปพลิเคชันนี้มีข้อกำหนดให้สามารถค้นหาบทความตามเกณฑ์ต่างๆ มากมาย ซึ่งส่วนใหญ่สามารถใช้ได้โดยการตรวจสอบ บทความ
เอนทิตี แต่บางส่วนสามารถนำไปใช้ได้โดยดูที่ค่าใน แพ็คเก็ต
เอนทิตี การค้นหาตัวอย่างอาจขอค้นหาบทความทั้งหมดที่ตีพิมพ์ภายในสิบสองเดือนที่ผ่านมาในวารสาร J และมอบหมายให้ผู้ตรวจทาน R ตรวจสอบ
ใน CMS ที่เหมาะกับการทำงานโดยตรงกับตาราง SQL เชิงสัมพันธ์ มันจะตรงไปตรงมามากที่จะสนับสนุนการค้นหาดังกล่าวโดยใช้การรวมตารางสองสามตัว แต่ Drupal ทำให้วิธีการนั้นน่าสนใจน้อยลง เนื่องจากเราไม่มีเอกสารรับประกันว่าแบบแผนการตั้งชื่อตารางและคอลัมน์ภายใต้เอนทิตีจะไม่เปลี่ยนแปลง
ฉันสามารถสร้างและดำเนินการค้นหาเอนทิตีสองรายการแยกกัน และใช้ผลลัพธ์ของรายการที่สองเพื่อแยกผลลัพธ์ที่ส่งกลับโดยแบบสอบถามแรกซึ่งไม่ปรากฏในผลลัพธ์ของรายการที่สองด้วย แต่ข้อเสียของแนวทางนี้คือความจริงที่ว่ามันทำลายกลไกการเพจของ Drupal
ฉันสามารถพยายามเลียนแบบสิ่งที่ DBMS จะทำได้อย่างมีประสิทธิภาพมากขึ้นโดยการป้อน ID เอนทิตีที่ส่งกลับโดยแบบสอบถามที่สองเป็นเงื่อนไขในแบบสอบถามแรก แต่ใครจะรู้ได้ว่าขีดจำกัดภายในที่อาจพบเมื่อผลลัพธ์ของแบบสอบถามที่สองเป็นอย่างไร ใหญ่?
ฉันสามารถใช้ kludge เพื่อทำให้ข้อมูลเป็นปกติ โดยจัดเก็บการอ้างอิงเอนทิตีจาก บทความ
เอนทิตีกลับไปที่ แพ็คเก็ต
เอนทิตีซึ่งจะชี้กลับไปที่ บทความ
เอนทิตี แต่เราทุกคนทราบปัญหาของการพยายามเก็บข้อมูลเดียวกันในหลาย ๆ ที่ให้ตรงกัน
ถ้า ทั้งหมด การค้นหามีไว้สำหรับบทความที่ได้รับการตรวจสอบ ฉันสามารถเปลี่ยนสิ่งต่างๆ และใช้แบบสอบถามเอนทิตีบน แพ็คเก็ต
พิมพ์ตามการอ้างอิงถึง บทความ
เอนทิตีสำหรับเกณฑ์อื่น ๆ ที่จำเป็นต้องทดสอบ แต่การค้นหาส่วนใหญ่มีไว้เพื่อค้นหาบทความไม่ว่าจะได้รับมอบหมายให้ตรวจสอบหรือไม่ก็ตาม ดังนั้นสำหรับเส้นทางนี้ ฉันต้องใช้ตรรกะการค้นหาสองชุดที่แยกจากกันแบบคู่ขนาน ชุดหนึ่งสำหรับการค้นหาที่เกี่ยวข้องกับการกำหนดให้ตรวจทานแพ็กเก็ต และชุดที่สองสำหรับการค้นหาที่ไม่สนใจเกี่ยวกับการกำหนดให้ตรวจทาน และวิธีการนี้ยังคงไม่สามารถระบุการค้นหาอย่างชัดแจ้งสำหรับบทความที่มี ไม่ ได้รับมอบหมายให้ตรวจสอบ และโปรดจำไว้ว่า ฉันกำลังทำให้ตัวอย่างกรณีการใช้งานนี้เรียบง่ายโดยจำกัดไว้เพียงสองประเภทเอนทิตี
Googling (และค้นหาฟอรัมนี้) คอยเปลี่ยนเส้นทางให้ฉันไปหาข้อมูลเกี่ยวกับการใช้ API การสืบค้นฐานข้อมูลที่อยู่ใต้ฐานข้อมูลแทนระบบการค้นหาเอนทิตี อย่างน้อยก็ด้วยคำค้นหาที่ฉันใช้อยู่
มีวิธีใช้เคียวรีย่อย (หรือดีกว่า เข้าร่วมกับเอนทิตีประเภทอื่น) ใน API เคียวรีเอนทิตีหรือไม่ ถ้าไม่ มีโอกาสที่จะสนับสนุนฟังก์ชันดังกล่าวภายใต้การสนทนาใน Drupal Valhalla หรือไม่