นี่คือคำถามที่ผมทำให้ตัวเองเมื่อหันหน้าโครงการใหม่เก็บฟิลด์ VS นิติบุคคลที่กำหนดเอง Entity อ้างอิง + หรือถ้าโครงสร้างที่เรียบง่าย, การเก็บฟิลด์ VS ฟิลด์ที่กำหนดเองที่มีคอลัมน์ฐานข้อมูลหลาย / Multifield นี่คือความคิดของฉันอยู่ในประสบการณ์ของผม
Multifield เป็นแนวคิดที่ยอดเยี่ยมมันจะเป็นคอลเล็กชั่นภาคสนามที่มีน้ำหนักเบาแทนที่จะสร้างโครงสร้างเอนทิตีที่มีความสัมพันธ์ครอบคลุมกรณีการใช้งานที่เรียบง่ายโดยไม่ต้องสร้างเอนทิตี มีปัญหาหลายประการเช่นการรวมคุณสมบัติไม่สมบูรณ์ไม่ได้พูดได้หลายภาษา ฯลฯ (ดังนั้นหากคุณวางแผนที่จะใช้สิ่งนี้
Field Collection เป็นโซลูชั่นที่ยอดเยี่ยมหากคุณกำลังทำเว็บไซต์ที่สามารถทำได้ด้วยการปรับแต่งเพียงไม่กี่ที่นี่และให้เครื่องมือสร้างเครื่องมือที่มีประสิทธิภาพในการสร้างโครงสร้างที่ซับซ้อนโดยไม่ต้องกังวลเกี่ยวกับ internals โดยพื้นฐานแล้วมันจะสร้างเอนทิตีที่เกี่ยวข้องกับเอนทิตี "โฮสต์" โดยรหัสประจำตัวช่วยให้สามารถเพิ่มเขตข้อมูลไปยังทุกสิ่ง ข้อเสียจะมาจากความรู้เกี่ยวกับการรวบรวมเขตข้อมูลที่คุณต้องดำเนินการที่ซับซ้อนเช่นการจัดการเขตข้อมูลการเก็บรวบรวมที่มีการอ้างอิงเอนทิตีหรือการโยกย้ายข้อมูล เนื่องจากเป็นเครื่องมือทั่วไปจึงค่อนข้างซับซ้อนในการก้าวไปอีกขั้นหนึ่ง
อีกตัวเลือกหนึ่งที่คุณได้รับนั่นก็คือการใช้ECKกับการอ้างอิงเอนทิตี แต่ประสบการณ์ของฉันเกี่ยวกับสิ่งนี้เป็นหายนะมาแล้วฉันคิดว่ามันง่ายกว่าที่จะสร้างประเภทเอนทิตีโดยใช้รหัสโดยไม่มีผู้ช่วย
มันเป็นเรื่องของสิ่งที่คุณต้องการและสิ่งที่เหมาะสมที่สุดสำหรับโครงการของคุณหากคุณมีเวลาและนักพัฒนาในการสร้างประเภทเอนทิตีที่เกี่ยวข้องกับแบบจำลองข้อมูลของคุณผ่านการอ้างอิงเอนทิตีคุณจะสามารถควบคุมสิ่งที่เกิดขึ้นได้มากขึ้น โครงสร้างข้อมูลของคุณ แต่คุณก็เป็น "รับผิดชอบ" เช่นกัน
หลังจากการทดสอบในขณะที่โซลูชันทั้งหมดอธิบายไว้ข้างต้นในทีมของเราเรามักจะไปหาประเภทเอนทิตี้ + ER แต่ฉันเห็นได้ว่าสำหรับโครงการขนาดเล็กโดยไม่มีการโยกย้ายข้อมูลหรือการติดตั้ง i18n ที่ซับซ้อนการรวบรวมฟิลด์เป็นวิธีที่เร็วที่สุด ไป.