บทที่ 3 ⏱ 15 นาที

ข้อมูลของใคร ของมัน

ตอนนี้แอปของคุณสมัครสมาชิกได้ เข้าระบบได้ และออกจากระบบได้แล้ว

แต่คุณน่าจะสังเกตเหมือนกันว่า ถึงจะมีสองบัญชี ทั้งสองคนก็ยังเห็นข้อมูลชุดเดียวกันอยู่ดี เหมือน รปภ.หน้าตึกเช็กชื่อแล้ว แต่สุดท้ายยังพาทุกคนเข้าห้องรวมเดิม


ล็อกอินอย่างเดียว ยังไม่ได้แปลว่าข้อมูลแยกกัน

ระบบล็อกอินตอบคำถามแรกได้แล้วว่า “คนนี้คือใคร”

แต่ยังมีอีกคำถามหนึ่งที่สำคัญพอๆ กัน คือ “ข้อมูลแถวนี้เป็นของใคร”

ถ้าแอปยังไม่ผูกข้อมูลแต่ละรายการกับเจ้าของ ต่อให้รู้ว่าคนที่ล็อกอินคือ User A หรือ User B ระบบก็ยังหยิบข้อมูลกองเดียวกันขึ้นมาให้ดูเหมือนเดิม

นี่คือปัญหาที่บทนี้จะจัดการ


คิดแบบ spreadsheet: เพิ่มช่องว่าแถวนี้เป็นของใคร

ลองกลับไปนึกถึง spreadsheet ของแอปค่าใช้จ่าย

ก่อนหน้านี้แต่ละแถวอาจมีแค่ ชื่อรายการ จำนวนเงิน วันที่ และหมวดหมู่ แต่ยังไม่มีช่องที่บอกว่าแถวนี้เป็นของใคร

พอไม่มีช่องนี้ ทุกคนก็ต้องเห็นทุกแถวเหมือนกัน

วิธีคิดที่ง่ายที่สุดของบทนี้คือ เพิ่มความหมายใหม่ให้แต่ละรายการว่า “เจ้าของคือใคร” แล้วเวลาแอปโหลดข้อมูล ก็ให้หยิบมาเฉพาะแถวที่เป็นของคนที่กำลังล็อกอินอยู่

💡 ไม่ต้องกลัวคำศัพท์

คุณยังไม่ต้องรู้ว่าระบบข้างหลังทำงานยังไง แค่เข้าใจว่าทุกแถวต้องมีเจ้าของ และแอปต้องรู้ว่าจะหยิบเฉพาะข้อมูลของเจ้าของคนนั้นมาแสดง


ถ้าจะเทียบกับอาคารเดิม ตอนนี้เรากำลังแยกห้องจริงๆ

บทที่แล้ว รปภ.รู้แล้วว่าใครเดินเข้ามา

บทนี้เรากำลังเพิ่มกติกาว่า เมื่อรู้แล้วว่าเป็นใคร รปภ.ต้องพาไปห้องของคนนั้นจริงๆ ไม่ใช่ปล่อยให้ทุกคนเข้าไปห้องกลางเหมือนเดิม

User A ต้องเห็นแต่ข้อมูลของ User A

User B ต้องเห็นแต่ข้อมูลของ User B

นี่คือจุดที่แอปเริ่มรู้สึกเหมือนแอปจริงที่หลายคนใช้ร่วมกันได้ แต่ข้อมูลไม่ปนกัน


Prompt ที่จะส่งในบทนี้

เราจะบอก AI ให้ผูกข้อมูลค่าใช้จ่ายแต่ละรายการกับผู้ใช้ที่ล็อกอินอยู่ และเวลาโหลดก็ให้แสดงเฉพาะของคนนั้น

ใช้ prompt นี้ได้เลย:

แก้ระบบข้อมูลค่าใช้จ่ายให้แยกตามผู้ใช้ที่ล็อกอินอยู่

- เมื่อผู้ใช้เพิ่มรายการค่าใช้จ่าย ให้ผูกรายการนั้นกับบัญชีของผู้ใช้ที่กำลังล็อกอินอยู่
- เมื่อโหลดรายการค่าใช้จ่าย ให้แสดงเฉพาะรายการที่เป็นของผู้ใช้คนนั้น
- ผู้ใช้คนหนึ่งต้องไม่เห็นข้อมูลของผู้ใช้อีกคน
- ยอดรวมค่าใช้จ่ายให้คำนวณเฉพาะรายการของผู้ใช้ที่ล็อกอินอยู่

ไม่เปลี่ยน design หรือฟังก์ชันที่มีอยู่แล้ว

สิ่งที่ prompt นี้กำลังสั่งมีอยู่ 2 เรื่องหลัก:

  1. ตอนบันทึก ให้จำว่าใครเป็นเจ้าของรายการนั้น
  2. ตอนแสดงผล ให้หยิบเฉพาะของเจ้าของคนนั้นขึ้นมา

ลงมือทำ — ส่ง prompt แล้วเตรียมทดสอบแบบสองหน้าต่าง

  1. เปิดโปรเจกต์ของคุณใน Lovable
  2. คัดลอก prompt ด้านบนไปวางในแชท
  3. ส่งให้ AI ทำงาน
  4. รอจนแอปอัปเดตเสร็จ

หลังจากเสร็จ อย่าเพิ่งเชื่อว่ามันแยกข้อมูลได้แล้ว

บทนี้ต้องพิสูจน์ด้วยตาเท่านั้น


สองหน้าต่าง คือคำตอบที่ชัดที่สุด

ขั้นตอนที่ 1 — เข้าเป็น User A

  1. เปิดแอปในหน้าต่างปกติ
  2. เข้าสู่ระบบด้วยบัญชีแรก
  3. เพิ่มค่าใช้จ่าย 3 รายการ เช่น ค่ากาแฟ, ค่าแท็กซี่, ค่าข้าว
  4. ดูว่ายอดรวมของ User A เปลี่ยนตามข้อมูลชุดนี้

ขั้นตอนที่ 2 — เข้าเป็น User B ในอีกหน้าต่าง

  1. เปิดหน้าต่าง incognito หรือ private window
  2. เข้าแอปเดียวกันด้วยบัญชีที่สอง
  3. ดูว่าตอนแรกควรยังไม่เห็นรายการของ User A

ถ้าตรงนี้ขึ้นว่าง นี่คือสัญญาณที่ดีมาก เพราะหมายความว่าแอปเริ่มแยกโลกของแต่ละคนแล้ว

ขั้นตอนที่ 3 — เพิ่มข้อมูลของ User B

  1. เพิ่มค่าใช้จ่ายอีก 2 รายการในบัญชีที่สอง
  2. ใช้ชื่อคนละชุดกับของ User A เช่น ค่าหนัง, ค่ารถเมล์
  3. ดูยอดรวมของ User B ในหน้าต่างนี้

ขั้นตอนที่ 4 — กลับไปดู User A

  1. กลับไปที่หน้าต่างแรก
  2. รีเฟรชหน้า
  3. ดูว่าหน้าต่างของ User A ยังเห็นแค่ 3 รายการเดิมของตัวเอง
  4. ดูว่ายอดรวมของ User A ยังเป็นของตัวเอง ไม่ปนกับของ User B

ถ้าเป็นแบบนี้ครบทุกข้อ แปลว่าระบบแยกข้อมูลตามผู้ใช้ได้จริงแล้ว

นี่คือจุดที่แอปของคุณเปลี่ยนสถานะจริงๆ

ถ้า User A และ User B เปิดแอปเดียวกัน แต่เห็นคนละข้อมูลกัน นี่ไม่ใช่แค่ระบบล็อกอินธรรมดาแล้ว มันคือแอปหลายผู้ใช้ที่เริ่มใช้งานได้จริง


ถ้ายังเห็นข้อมูลปนกัน ลองคิดแบบนี้ก่อน

ถ้าคุณทำสองหน้าต่างแล้วทั้งสองคนยังเห็นข้อมูลเหมือนกัน ยังไม่ต้องตกใจ

ให้กลับมาถามทีละข้อ:

  1. ตอนเพิ่มรายการใหม่ ระบบกำลังจำไหมว่าใครเป็นคนเพิ่ม
  2. ตอนโหลดรายการ ระบบกำลังหยิบเฉพาะของคนที่ล็อกอินอยู่หรือยัง
  3. คุณกำลังทดสอบด้วยข้อมูลใหม่ที่เพิ่มหลังจาก AI ปรับระบบแล้วหรือยัง

ถ้ายังไม่แน่ใจ ลองส่ง prompt เดิมอีกครั้ง แล้วทดสอบใหม่ตั้งแต่ต้นแบบสองหน้าต่าง

⚠️ ใช้ข้อมูลใหม่ตอนทดสอบ

ถ้ามีข้อมูลเก่าที่ถูกสร้างไว้ก่อนระบบแยกผู้ใช้ บางครั้งมันอาจทำให้ภาพดูสับสน เวลาทดสอบบทนี้ ให้สังเกตข้อมูลที่เพิ่มใหม่หลังจากการเปลี่ยนแปลงจะชัดที่สุด


สำหรับแอปของคุณเอง

ถ้าแอปของคุณไม่ได้เป็น expense tracker หลักคิดก็ยังเหมือนเดิม

คำถามคือ “ข้อมูลหนึ่งรายการในแอปนี้ควรเป็นของใคร” เมื่อคุณตอบได้ ระบบก็ต้องจำเจ้าของของแต่ละรายการ และตอนแสดงผลก็ต้องโชว์เฉพาะของคนที่กำลังใช้อยู่


คุณเพิ่งทำอะไรสำเร็จไปแล้วบ้าง

  • คุณเข้าใจแล้วว่าล็อกอินอย่างเดียวไม่พอ ถ้าข้อมูลยังไม่ถูกผูกกับเจ้าของ
  • คุณทำให้ข้อมูลแต่ละแถวเริ่มมีความเป็นเจ้าของชัดเจนแล้ว
  • คุณพิสูจน์ด้วยสองหน้าต่างได้ว่า User A และ User B เห็นคนละข้อมูลจริง
  • แอปของคุณขยับจาก “มีคนเข้าใช้ได้” ไปสู่ “แต่ละคนมีพื้นที่ข้อมูลของตัวเอง” แล้ว

บทต่อไป เราจะจัดการอีกปัญหาหนึ่งที่คนมักเจอหลังมีระบบล็อกอินแล้ว คือถ้ายังไม่ล็อกอินเลย คนควรเห็นอะไร ไม่ใช่เปิดมาแล้วเจอหน้าว่างหรือหน้าพัง

🎉
ยินดีด้วย! คุณทำสำเร็จแล้ว

ข้อมูลของ User A และ User B แยกกันสมบูรณ์แล้ว — แต่ละคนเห็นแค่ข้อมูลของตัวเอง 🎉