เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
ในการพัฒนาปลั๊กอิน NocoBase นั้น คอลเลกชัน (Collection) หรือตารางข้อมูล เป็นหนึ่งในแนวคิดหลักที่สำคัญที่สุดครับ/ค่ะ คุณสามารถเพิ่มหรือแก้ไขโครงสร้างตารางข้อมูลในปลั๊กอินได้ โดยการกำหนด (define) หรือขยาย (extend) คอลเลกชัน ซึ่งแตกต่างจากตารางข้อมูลที่สร้างผ่านหน้าจอการจัดการแหล่งข้อมูล คอลเลกชันที่ถูกกำหนดด้วยโค้ดมักจะเป็นตารางเมตาดาต้า (metadata) ระดับระบบ และจะไม่ปรากฏในรายการการจัดการแหล่งข้อมูลครับ/ค่ะ
ตามโครงสร้างไดเรกทอรีแบบ Convention ไฟล์คอลเลกชันควรอยู่ในไดเรกทอรี ./src/server/collections ครับ/ค่ะ หากต้องการสร้างตารางใหม่ ให้ใช้ defineCollection() และหากต้องการขยายตารางที่มีอยู่แล้ว ให้ใช้ extendCollection()
ในตัวอย่างด้านบนนี้:
name: ชื่อตาราง (ระบบจะสร้างตารางชื่อเดียวกันในฐานข้อมูลโดยอัตโนมัติครับ/ค่ะ)title: ชื่อที่ใช้แสดงสำหรับตารางนี้ในหน้าจอ UI ครับ/ค่ะfields: ชุดของฟิลด์ข้อมูล โดยแต่ละฟิลด์จะประกอบด้วยคุณสมบัติ เช่น type, name เป็นต้นครับ/ค่ะเมื่อคุณต้องการเพิ่มฟิลด์หรือแก้ไขการตั้งค่าสำหรับคอลเลกชันของปลั๊กอินอื่น ๆ คุณสามารถใช้ extendCollection() ได้ครับ/ค่ะ
หลังจากเปิดใช้งานปลั๊กอินแล้ว ระบบจะเพิ่มฟิลด์ isPublished ไปยังตาราง articles ที่มีอยู่โดยอัตโนมัติครับ/ค่ะ
ไดเรกทอรีแบบ Convention จะโหลดเสร็จสมบูรณ์ก่อนที่เมธอด load() ของปลั๊กอินทั้งหมดจะทำงาน ซึ่งช่วยหลีกเลี่ยงปัญหาการพึ่งพา (dependency issues) ที่เกิดจากการที่ตารางข้อมูลบางส่วนยังไม่ได้ถูกโหลดครับ/ค่ะ
เมื่อปลั๊กอินถูกเปิดใช้งานครั้งแรก ระบบจะซิงโครไนซ์การตั้งค่าคอลเลกชันกับโครงสร้างฐานข้อมูลโดยอัตโนมัติครับ/ค่ะ หากปลั๊กอินถูกติดตั้งและกำลังทำงานอยู่แล้ว หลังจากเพิ่มหรือแก้ไขคอลเลกชัน คุณจะต้องรันคำสั่งอัปเกรดด้วยตนเองดังนี้ครับ/ค่ะ
หากเกิดข้อผิดพลาด (exception) หรือข้อมูลที่ไม่ถูกต้อง (dirty data) ระหว่างการซิงโครไนซ์ คุณสามารถสร้างโครงสร้างตารางใหม่ได้โดยการติดตั้งแอปพลิเคชันอีกครั้งครับ/ค่ะ
หลังจากที่คุณกำหนดคอลเลกชันแล้ว ระบบจะสร้าง Resource ที่เกี่ยวข้องให้โดยอัตโนมัติ ซึ่งคุณสามารถดำเนินการเพิ่ม ลบ แก้ไข และค้นหา (CRUD) กับ Resource นั้นได้โดยตรงผ่าน API ครับ/ค่ะ ดูรายละเอียดเพิ่มเติมได้ที่ การจัดการ Resource ครับ/ค่ะ