การเก็บภาคสนามเทียบกับการอ้างอิงเอนทิตี


14

การรวบรวมฟิลด์เป็นประโยชน์อย่างไร คุณสามารถทำสิ่งเดียวกันกับประเภทเนื้อหาใหม่ที่ชี้ไปยังผู้ปกครองด้วยการอ้างอิงเอนทิตี

บางทีใครบางคนสามารถพังสถานการณ์ที่แต่ละคนจะดีกว่า

พูดถึงภารกิจ -> ไฟล์การรวบรวมฟิลด์จะดีขึ้นหรือเป็นประเภทเนื้อหาใหม่ที่มีการอ้างอิงเอนทิตีหรือไม่

พูดสำหรับแต่ละไฟล์ที่คุณต้องการข้อมูลอื่น ๆ เพิ่มเติมเกี่ยวกับไฟล์นั้นเสียงเหมือนแผนสำหรับประเภทใหม่ที่มีการอ้างอิงเอนทิตี แต่คุณสามารถฝังการรวบรวมฟิลด์ภายในคอลเลกชันฟิลด์

ฉันสนุกกับการที่ Drupal มีหลายวิธีในการทำสิ่งเดียวกัน แต่ฉันไม่สามารถหาวิธีแก้ปัญหาทั้งสองที่แตกต่างกันหรือคล้ายคลึงกันได้

บางทีใครบางคนสามารถช่วยอธิบายได้?

คำตอบ:


15

นี่คือคำถามที่ผมทำให้ตัวเองเมื่อหันหน้าโครงการใหม่เก็บฟิลด์ VS นิติบุคคลที่กำหนดเอง Entity อ้างอิง + หรือถ้าโครงสร้างที่เรียบง่าย, การเก็บฟิลด์ VS ฟิลด์ที่กำหนดเองที่มีคอลัมน์ฐานข้อมูลหลาย / Multifield นี่คือความคิดของฉันอยู่ในประสบการณ์ของผม

Multifield เป็นแนวคิดที่ยอดเยี่ยมมันจะเป็นคอลเล็กชั่นภาคสนามที่มีน้ำหนักเบาแทนที่จะสร้างโครงสร้างเอนทิตีที่มีความสัมพันธ์ครอบคลุมกรณีการใช้งานที่เรียบง่ายโดยไม่ต้องสร้างเอนทิตี มีปัญหาหลายประการเช่นการรวมคุณสมบัติไม่สมบูรณ์ไม่ได้พูดได้หลายภาษา ฯลฯ (ดังนั้นหากคุณวางแผนที่จะใช้สิ่งนี้

Field Collection เป็นโซลูชั่นที่ยอดเยี่ยมหากคุณกำลังทำเว็บไซต์ที่สามารถทำได้ด้วยการปรับแต่งเพียงไม่กี่ที่นี่และให้เครื่องมือสร้างเครื่องมือที่มีประสิทธิภาพในการสร้างโครงสร้างที่ซับซ้อนโดยไม่ต้องกังวลเกี่ยวกับ internals โดยพื้นฐานแล้วมันจะสร้างเอนทิตีที่เกี่ยวข้องกับเอนทิตี "โฮสต์" โดยรหัสประจำตัวช่วยให้สามารถเพิ่มเขตข้อมูลไปยังทุกสิ่ง ข้อเสียจะมาจากความรู้เกี่ยวกับการรวบรวมเขตข้อมูลที่คุณต้องดำเนินการที่ซับซ้อนเช่นการจัดการเขตข้อมูลการเก็บรวบรวมที่มีการอ้างอิงเอนทิตีหรือการโยกย้ายข้อมูล เนื่องจากเป็นเครื่องมือทั่วไปจึงค่อนข้างซับซ้อนในการก้าวไปอีกขั้นหนึ่ง

อีกตัวเลือกหนึ่งที่คุณได้รับนั่นก็คือการใช้ECKกับการอ้างอิงเอนทิตี แต่ประสบการณ์ของฉันเกี่ยวกับสิ่งนี้เป็นหายนะมาแล้วฉันคิดว่ามันง่ายกว่าที่จะสร้างประเภทเอนทิตีโดยใช้รหัสโดยไม่มีผู้ช่วย

มันเป็นเรื่องของสิ่งที่คุณต้องการและสิ่งที่เหมาะสมที่สุดสำหรับโครงการของคุณหากคุณมีเวลาและนักพัฒนาในการสร้างประเภทเอนทิตีที่เกี่ยวข้องกับแบบจำลองข้อมูลของคุณผ่านการอ้างอิงเอนทิตีคุณจะสามารถควบคุมสิ่งที่เกิดขึ้นได้มากขึ้น โครงสร้างข้อมูลของคุณ แต่คุณก็เป็น "รับผิดชอบ" เช่นกัน

หลังจากการทดสอบในขณะที่โซลูชันทั้งหมดอธิบายไว้ข้างต้นในทีมของเราเรามักจะไปหาประเภทเอนทิตี้ + ER แต่ฉันเห็นได้ว่าสำหรับโครงการขนาดเล็กโดยไม่มีการโยกย้ายข้อมูลหรือการติดตั้ง i18n ที่ซับซ้อนการรวบรวมฟิลด์เป็นวิธีที่เร็วที่สุด ไป.


ภาพรวมที่ดี ฉันต้องการแสดงความคิดเห็นว่าการรวบรวมฟิลด์สนับสนุนการย้ายข้อมูลผ่านโมดูลการโอนย้าย
lefterav

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

@lefterav แน่นอนว่าสิ่งที่ฉันหมายถึงคือการโยกย้ายคอลเลกชันฟิลด์อาจเป็นงานที่ยากมากสำหรับบางกรณีการใช้งานและจะต้องมีการพิจารณา
pcambra

3

มันขึ้นอยู่กับข้อมูลที่คุณป้อนในฟิลด์และการใช้ที่คุณต้องการจะทำกับมัน

หากคุณต้องการใช้ Field Collection ต้องแน่ใจว่าคุณสามารถทำอะไรก็ตามที่อยู่ในขอบเขตของคุณจากมุมมองปกติการแปลการทำดัชนี solr ฯลฯ

หากคุณต้องการใช้ข้อมูลที่คุณเพิ่มลงในคอลเลกชันฟิลด์อีกครั้งการใช้ประเภทเนื้อหาหรือเอนทิตีแบบกำหนดเองจะดีกว่า ตัวอย่าง: หลักสูตรของโรงเรียนมี 5 หัวข้อ หัวข้อประกอบด้วย 3 ฟิลด์: ชื่อชั่วโมงและระดับ หากคุณจะใช้หัวข้อในหลักสูตรของโรงเรียนหลายครั้งให้ไปที่ประเภทเนื้อหา / หน่วยงานที่กำหนดเองและใช้การอ้างอิงองค์กร


0

ควรมีประสิทธิภาพเทียบเท่ากันโดยประมาณ แต่การรวบรวมฟิลด์ใช้เอนทิตี API และไม่ต้องการสร้างประเภทเนื้อหาที่กำหนดเอง

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