แปลโดย AI ชุมชนยังไม่ได้ตรวจทาน อ่านเป็นภาษาอังกฤษ

บล็อก · 14 กันยายน 2566 · Steve Simpson · สถาปัตยกรรมข้อมูล

Steve Data Modeling: จาก Picklist สู่อนันต์และไกลกว่านั้น

บทนำ:

ยินดีต้อนรับสู่อีกเซสชันที่ให้ข้อคิดเรื่องการสร้างโมเดลข้อมูลกับซีรีส์ Steve’s Data Modeling! ในบล็อกนี้ เราจะสำรวจการใช้งานที่หลากหลายของ picklist และพูดถึงสถานการณ์ที่คุณอาจต้องพิจารณาทางเลือกอื่นสำหรับความต้องการการสร้างโมเดลข้อมูลขั้นสูงขึ้น

ทำความเข้าใจ Picklist

Picklist เหมาะเมื่อคุณมีฟิลด์ที่ต้องการชุดค่าที่คงที่ มันให้ประสบการณ์ผู้ใช้ที่สะอาด แต่ก็มีข้อจำกัดบางอย่าง:

เกิดข้อผิดพลาดในการตรวจสอบข้อมูลถ้าค่าจากการผสานรวมกับบุคคลที่สามไม่ได้เพิ่มไว้ใน Salesforce ล่วงหน้า

สำรวจทางเลือกของ Picklist

นี่คือทางเลือกของ picklist ที่ควรพิจารณา:

ทางเลือกที่ 1: Global Value Set

นี่คือทางเลือกมาตรฐานของ Salesforce และใช้รายการร่วมกันข้ามออบเจกต์ได้

ทางเลือกที่ 1 picklist และ global value set ข้อดี: ประสบการณ์ผู้ใช้ที่สะอาด ข้อเสีย: ผู้ดูแลระบบต้องเพิ่มค่า การเปลี่ยนแปลงต้อง deploy ไปยัง sandbox ระบบภายนอกก่อปัญหา และค่าหนึ่งเก็บฟิลด์ที่เกี่ยวข้องไม่ได้

Global value set เหมาะที่สุดสำหรับค่าที่ใช้ในหลายที่ ตัวอย่างเช่น คุณมี global value set สองชุดสำหรับ ‘ขนาดท่อ’ และ ‘ความหนาท่อ’ ได้ ให้ UI ที่สะอาดสำหรับผู้ใช้ในการเลือกค่า

[caption id="" align=“alignnone” width=“1372”]ตัวอย่าง Value Set ตัวอย่าง Value Set [/caption] [caption id="" align=“alignnone” width=“1814”]ตัวอย่างค่า ตัวอย่างค่า [/caption] [caption id="" align=“alignnone” width=“676”]การเลือกจากรายการ การเลือกจากรายการ [/caption]

ทางเลือกที่ 2: ฟิลด์ข้อความ

นี่เป็นแค่ฟิลด์ข้อความที่ไม่มีการตรวจสอบ

ทางเลือกที่ 2 ฟิลด์ข้อความ ข้อดี: รับค่าอะไรก็ได้ ข้อเสีย: ไม่มีการตรวจสอบข้อมูลและประสบการณ์ผู้ใช้ที่แย่

ถ้าค่าข้อมูลถูกส่งเข้ามาผ่านการผสานรวม คุณอาจพิจารณาใช้ฟิลด์ข้อความ แต่วิธีนี้เสียการตรวจสอบ ให้ผู้ใช้ป้อนข้อมูลอะไรก็ได้ ซึ่งอาจนำไปสู่ความไม่สอดคล้อง

นี่อาจเป็นทางเลือกถ้าฟิลด์เป็นแบบอ่านอย่างเดียวใน Salesforce และคุณแค่แสดงค่า

[caption id="" align=“alignnone” width=“678”]ไม่มีการตรวจสอบ ไม่มีการตรวจสอบ [/caption]

ทางเลือกที่ 3: ออบเจกต์อ้างอิงที่ใช้ร่วมกัน

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

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

[caption id="" align=“alignnone” width=“1462”]การใช้ประเภทเรกคอร์ด การใช้ประเภทเรกคอร์ด [/caption] [caption id="" align=“alignnone” width=“1700”]ใช้ lookup แบบกรอง ใช้ lookup แบบกรอง [/caption] [caption id="" align=“alignnone” width=“1434”]การเพิ่มค่า การเพิ่มค่า [/caption] [caption id="" align=“alignnone” width=“658”]หน้าตาของการเลือกค่า การเรียงลำดับไม่ถูกต้อง และไม่แสดงค่าทั้งหมดตอนโหลดครั้งแรก ผู้ใช้ต้องค้นหาเอง นอกจากนี้ ให้แน่ใจว่าคุณเอา “Create” ออกจากโปรไฟล์/ชุดสิทธิ์ เพื่อไม่ให้ผู้ใช้สร้างเรกคอร์ดเพิ่มระหว่างใช้งาน หน้าตาของการเลือกค่า การเรียงลำดับไม่ถูกต้อง และไม่แสดงค่าทั้งหมดตอนโหลดครั้งแรก ผู้ใช้ต้องค้นหาเอง นอกจากนี้ ให้แน่ใจว่าคุณเอา “Create” ออกจากโปรไฟล์/ชุดสิทธิ์ เพื่อไม่ให้ผู้ใช้สร้างเรกคอร์ดเพิ่มระหว่างใช้งาน [/caption]

ส่วนที่ 3: ทางเลือกขั้นสูง

สำหรับสถานการณ์ขั้นสูงขึ้น ให้พิจารณาทางเลือกเหล่านี้:

ทางเลือกที่ 4: หน้าจอที่กำหนดเองพร้อมออบเจกต์อ้างอิง

ทางเลือกที่ 4 ออบเจกต์อ้างอิงบวกฟิลด์ข้อความ พร้อม Lightning web component ที่อ่านค่า picklist จากออบเจกต์อ้างอิง ข้อดี: เพิ่มข้อมูลแบบไดนามิกได้และออบเจกต์ต้นทางเก็บค่าไว้ ข้อเสีย: ต้องพัฒนา LWC และหน้าเพจที่กำหนดเอง

ถ้าคุณใช้ Lightning Web Components (LWC) ที่กำหนดเองสำหรับหน้าจอแก้ไข คุณใช้ออบเจกต์อ้างอิงเพื่ออ่านค่าแล้วแสดงผล โดยเก็บค่าจริงแทน lookup ได้

ทางเลือกที่ 5: ออบเจกต์แยกเดี่ยว

ทางเลือกที่ 5 ออบเจกต์อ้างอิงแยกเดี่ยว หนึ่งตัวต่อหนึ่งรายการ ข้อดี: เพิ่มข้อมูลแบบไดนามิกได้ โมเดลข้อมูลสะอาด และมีฟิลด์ที่เกี่ยวข้องได้มาก ข้อเสีย: ต้องโหลดข้อมูลใน sandbox เก็บคีย์แทนค่า และมีออบเจกต์จำนวนมาก

ถ้าค่า lookup มีความสำคัญมากขึ้น ให้พิจารณาสร้างออบเจกต์แยกเดี่ยวสำหรับแต่ละรายการและสร้าง lookup แยกกัน วิธีนี้ให้เพิ่มข้อมูลแบบไดนามิกได้ รักษาโมเดลข้อมูลให้สะอาด และรองรับฟิลด์ที่เกี่ยวข้องเพิ่มเติมบนแต่ละออบเจกต์

ตัวอย่างเชิงปฏิบัติ

นี่คือตัวอย่างเชิงปฏิบัติที่แสดงแต่ละทางเลือก:

Picklist มาตรฐาน: ให้ UI ที่สะอาดพร้อมค่าคงที่

ฟิลด์ข้อความที่ไม่มีการตรวจสอบ: ให้ความยืดหยุ่นแต่ไม่มีการตรวจสอบข้อมูล

Lookup ไปยังออบเจกต์อ้างอิง: ใช้ออบเจกต์เดียวกันพร้อมประเภทเรกคอร์ดที่กรองเพื่อความยืดหยุ่น

ออบเจกต์แยกเดี่ยว: ใช้ออบเจกต์แยกสำหรับแต่ละ lookup ให้โมเดลข้อมูลที่สะอาดและยืดหยุ่น

บทสรุป

การเข้าใจรายละเอียดของ picklist และทางเลือกอื่นสำคัญมากต่อการสร้างโมเดลข้อมูลที่มีประสิทธิภาพ ตั้งแต่ picklist มาตรฐานไปจนถึงออบเจกต์แยกเดี่ยว แต่ละทางเลือกให้ประโยชน์เฉพาะตัวเพื่อตอบความต้องการการสร้างโมเดลข้อมูลที่เจาะจง

แล้วกลับมาใหม่นะ!

สำหรับมุมมองและเคล็ดลับเพิ่มเติม ติดตามได้ที่ www.SteveTechArc.com และช่อง YouTube @SteveTechArc (opens in a new tab) กดติดตามแล้วมาเพิ่มความเฉียบคมด้านการสร้างโมเดลข้อมูลไปกับเรา!

ช่วยเปลี่ยนโลกด้วยการแบ่งปันความคิดเจ๋งๆ กับเพื่อนสถาปนิกและผู้ที่อยู่บนเส้นทางสู่การเป็นสถาปนิก!

บทถอดความได้รับความช่วยเหลือจาก AI

STA 2.2