Steve Data Modeling: จาก Picklist สู่อนันต์และไกลกว่านั้น
บทนำ:
ยินดีต้อนรับสู่อีกเซสชันที่ให้ข้อคิดเรื่องการสร้างโมเดลข้อมูลกับซีรีส์ Steve’s Data Modeling! ในบล็อกนี้ เราจะสำรวจการใช้งานที่หลากหลายของ picklist และพูดถึงสถานการณ์ที่คุณอาจต้องพิจารณาทางเลือกอื่นสำหรับความต้องการการสร้างโมเดลข้อมูลขั้นสูงขึ้น
ทำความเข้าใจ Picklist
Picklist เหมาะเมื่อคุณมีฟิลด์ที่ต้องการชุดค่าที่คงที่ มันให้ประสบการณ์ผู้ใช้ที่สะอาด แต่ก็มีข้อจำกัดบางอย่าง:
- ต้องใช้สิทธิ์ผู้ดูแลระบบระดับสูงในการเพิ่มค่า
- ค่าใหม่ต้อง deploy ผ่าน sandbox
เกิดข้อผิดพลาดในการตรวจสอบข้อมูลถ้าค่าจากการผสานรวมกับบุคคลที่สามไม่ได้เพิ่มไว้ใน Salesforce ล่วงหน้า
สำรวจทางเลือกของ Picklist
นี่คือทางเลือกของ picklist ที่ควรพิจารณา:
ทางเลือกที่ 1: Global Value Set
นี่คือทางเลือกมาตรฐานของ Salesforce และใช้รายการร่วมกันข้ามออบเจกต์ได้

Global value set เหมาะที่สุดสำหรับค่าที่ใช้ในหลายที่ ตัวอย่างเช่น คุณมี global value set สองชุดสำหรับ ‘ขนาดท่อ’ และ ‘ความหนาท่อ’ ได้ ให้ UI ที่สะอาดสำหรับผู้ใช้ในการเลือกค่า
[caption id="" align=“alignnone” width=“1372”]
ตัวอย่าง Value Set [/caption]
[caption id="" align=“alignnone” width=“1814”]
ตัวอย่างค่า [/caption]
[caption id="" align=“alignnone” width=“676”]
การเลือกจากรายการ [/caption]
ทางเลือกที่ 2: ฟิลด์ข้อความ
นี่เป็นแค่ฟิลด์ข้อความที่ไม่มีการตรวจสอบ

ถ้าค่าข้อมูลถูกส่งเข้ามาผ่านการผสานรวม คุณอาจพิจารณาใช้ฟิลด์ข้อความ แต่วิธีนี้เสียการตรวจสอบ ให้ผู้ใช้ป้อนข้อมูลอะไรก็ได้ ซึ่งอาจนำไปสู่ความไม่สอดคล้อง
นี่อาจเป็นทางเลือกถ้าฟิลด์เป็นแบบอ่านอย่างเดียวใน Salesforce และคุณแค่แสดงค่า
[caption id="" align=“alignnone” width=“678”]
ไม่มีการตรวจสอบ [/caption]
ทางเลือกที่ 3: ออบเจกต์อ้างอิงที่ใช้ร่วมกัน

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

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

ถ้าค่า lookup มีความสำคัญมากขึ้น ให้พิจารณาสร้างออบเจกต์แยกเดี่ยวสำหรับแต่ละรายการและสร้าง lookup แยกกัน วิธีนี้ให้เพิ่มข้อมูลแบบไดนามิกได้ รักษาโมเดลข้อมูลให้สะอาด และรองรับฟิลด์ที่เกี่ยวข้องเพิ่มเติมบนแต่ละออบเจกต์
ตัวอย่างเชิงปฏิบัติ
นี่คือตัวอย่างเชิงปฏิบัติที่แสดงแต่ละทางเลือก:
Picklist มาตรฐาน: ให้ UI ที่สะอาดพร้อมค่าคงที่
ฟิลด์ข้อความที่ไม่มีการตรวจสอบ: ให้ความยืดหยุ่นแต่ไม่มีการตรวจสอบข้อมูล
Lookup ไปยังออบเจกต์อ้างอิง: ใช้ออบเจกต์เดียวกันพร้อมประเภทเรกคอร์ดที่กรองเพื่อความยืดหยุ่น
ออบเจกต์แยกเดี่ยว: ใช้ออบเจกต์แยกสำหรับแต่ละ lookup ให้โมเดลข้อมูลที่สะอาดและยืดหยุ่น
บทสรุป
การเข้าใจรายละเอียดของ picklist และทางเลือกอื่นสำคัญมากต่อการสร้างโมเดลข้อมูลที่มีประสิทธิภาพ ตั้งแต่ picklist มาตรฐานไปจนถึงออบเจกต์แยกเดี่ยว แต่ละทางเลือกให้ประโยชน์เฉพาะตัวเพื่อตอบความต้องการการสร้างโมเดลข้อมูลที่เจาะจง
แล้วกลับมาใหม่นะ!
สำหรับมุมมองและเคล็ดลับเพิ่มเติม ติดตามได้ที่ www.SteveTechArc.com และช่อง YouTube @SteveTechArc (opens in a new tab) กดติดตามแล้วมาเพิ่มความเฉียบคมด้านการสร้างโมเดลข้อมูลไปกับเรา!
ช่วยเปลี่ยนโลกด้วยการแบ่งปันความคิดเจ๋งๆ กับเพื่อนสถาปนิกและผู้ที่อยู่บนเส้นทางสู่การเป็นสถาปนิก!
บทถอดความได้รับความช่วยเหลือจาก AI
STA 2.2