PlusMagi's Blog By Pitt Phunsanit Database รูปแบบการรับมือ (ศึกษา Thomas-Kilmann Model: Competing, Collaborating, Compromising, Avoiding, Accommodating)

รูปแบบการรับมือ (ศึกษา Thomas-Kilmann Model: Competing, Collaborating, Compromising, Avoiding, Accommodating)

ในโลกของการพัฒนาซอฟต์แวร์และระบบข้อมูลขนาดใหญ่ ความขัดแย้งหรือความเห็นที่แตกต่างกันระหว่าง Requirement, Data Schema, หรือ Business Logic เป็นสิ่งที่หลีกเลี่ยงไม่ได้ สิ่งที่สำคัญกว่าการหลีกหนีจากความขัดแย้งคือ วิธีการตอบสนอง ต่อมัน เพราะรูปแบบที่เราเลือกใช้เมื่อเผชิญหน้ากับมุมมองที่ไม่ตรงกันนั้น คือตัวกำหนดทิศทางของความสมบูรณ์ของระบบ (System Integrity) และความสัมพันธ์ในการทำงานร่วมกัน การทำความเข้าใจกลไกเหล่านี้จึงเป็นทักษะสำคัญที่ช่วยให้เราสามารถนำพาตัวเองและโค้ดของเราไปสู่ข้อสรุปที่เป็นประโยชน์สูงสุด

Thomas-Kilmann Model ในมุมมองของ Database Architect

แนวคิดเรื่องรูปแบบการรับมือ (Conflict Styles) ได้พัฒนาขึ้นเพื่อช่วยให้เรามองเห็นว่า การแก้ไขความขัดแย้งในข้อมูลไม่ใช่สูตรสำเร็จตายตัว แต่เป็นการเลือกใช้เครื่องมือ (SQL Techniques) ที่เหมาะสมกับบริบทและสถานการณ์นั้นๆ โดยพื้นฐานแล้ว โมเดลนี้จะพิจารณาจากสองมิติหลัก คือ ระดับการยืนยันในความถูกต้องของข้อมูล (Assertiveness) และ ระดับความใส่ใจต่อความต้องการของระบบอื่น (Cooperativeness) การทำความเข้าใจแกนเหล่านี้จะช่วยให้เราวิเคราะห์ได้ว่า เมื่อไหร่ที่เราควรเน้นที่ ‘ความถูกต้องของข้อมูลหลัก’ และเมื่อไหร่ที่เราควรเน้นที่ ‘การทำให้ระบบทั้งหมดทำงานร่วมกันได้’

การแมป Conflict Styles สู่ PostgreSQL

ในฐานะ System Specialist เราสามารถแมปรูปแบบการรับมือทั้ง 5 รูปแบบ เข้ากับกลไกการจัดการข้อมูลใน PostgreSQL ได้ดังนี้:

  • Collaborating (Win-Win): การหาทางออกที่ดีที่สุดสำหรับทุกฝ่าย (Highest Assertiveness, Highest Cooperativeness) ในทาง SQL คือการใช้ JOIN หรือ CTE เพื่อผสานข้อมูลที่ซับซ้อนให้ได้ผลลัพธ์ที่สมบูรณ์ที่สุด
  • Compromising (Win-Lose): การประนีประนอม (ปานกลางทั้งสองด้าน) มักใช้ CASE WHEN หรือ COALESCE เพื่อเลือกค่าที่อยู่ตรงกลางระหว่างสองทางเลือก
  • Competing (Win-Lose): การยืนยันความถูกต้องของตนเองอย่างเด็ดขาด (High Assertiveness, Low Cooperativeness) คือการใช้ UPDATE โดยการกำหนดค่าใหม่ทับไปโดยไม่สนใจข้อมูลเก่า
  • Avoiding (Lose-Lose): การหลีกเลี่ยงความขัดแย้ง (Low Assertiveness, Low Cooperativeness) คือการใช้ WHERE clause เพื่อกรองข้อมูลที่ไม่เกี่ยวข้องออกไปจากมุมมองปัจจุบัน
  • Accommodating (Lose-Win): การยอมตามฝ่ายอื่น (Low Assertiveness, High Cooperativeness) คือการใช้ INSERT INTO ... SELECT ... เพื่อรับข้อมูลที่ฝ่ายอื่นส่งมาโดยไม่ตรวจสอบความถูกต้องของมัน

ตัวอย่างการ Collaborating (การผสานข้อมูลที่สมบูรณ์)

เมื่อเราต้องการหาข้อมูลที่ตรงกันระหว่างตาราง ‘orders’ และ ‘inventory’ โดยไม่ทิ้งข้อมูลใดๆ ไป เราต้องใช้ JOIN เพื่อให้ได้ผลลัพธ์ที่ครบถ้วน:

SQL

SELECT o.order_id, i.product_name, o.quantity FROM orders o JOIN inventory i ON o.product_id = i.product_id WHERE o.order_id = '101';

บทสรุป: การเลือกใช้เครื่องมือที่เหมาะสม

การเป็น Senior Architect ไม่ได้หมายถึงการรู้คำสั่ง SQL ที่ซับซ้อนที่สุดเท่านั้น แต่หมายถึงการรู้ว่าเมื่อใดควรใช้ JOIN (Collaborating) เมื่อใดควรใช้ WHERE (Avoiding) และเมื่อใดควรใช้ UPDATE (Competing) การวิเคราะห์สถานการณ์ความขัดแย้งด้วย Thomas-Kilmann Model ช่วยให้เราเปลี่ยนจากการตอบสนองทางอารมณ์ ไปสู่การตัดสินใจเชิงเทคนิคที่รอบคอบ ทำให้ระบบของเราไม่เพียงแค่ทำงานได้ แต่ยังมีความยืดหยุ่นและทนทานต่อความขัดแย้งของข้อมูลอย่างแท้จริง

Exit mobile version