ถามเทคนิควิธีการแก้ไข ข้อมูล แบบ master-detail ครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ถามเทคนิควิธีการแก้ไข ข้อมูล แบบ master-detail ครับ
ผมมีการบันทึกข้อมูลแบบ master-detail ของ เอกสารครับ
tb_document
-doc_id
-doc_name
-doc_date
tb_document_category
-category_id
-doc_id
-category_name
ตามตัวอย่าง 1 document จะมีได้หลาย category ครับ
ที่ผมอยากทำคือ ในเรื่องการแก้ไข category ของ doc_id นั้นๆ
สมมุติว่า doc_id = 1 มี category_id คือ 1 , 2 , 4 ตามลำดับ
ผมต้องการแก้ เป็น ให้มี 1 , 2 , 3 , 5
โดยลักษณะตรง category ผมได้ทำเป็น checkbox ให้เลือกไว้ (ตอนเรียกดูข้อมูลก่อนแก้ไข ถ้าอันไหนมีอยุ่ ก็จะถูกติ๊กไว้)
จากตัวอย่างข้างบน ก่อนแก้ไข ข้อมูลเดิม จะถูกติ๊กไว้ที่ 1 , 2 และ 4
พอแก้ไขไปใหม่ เปลี่ยนไปติ๊กที่ 1 , 2 , 3 , 5
ตอนบันทึกข้อมูลผมจะบันทึกอย่างไรดีครับ
จะเช็คได้อย่างไรว่า ถ้า อันใหม่ที่ติ๊กไว้ เหมือนกับอันเก่าที่มีอยู่ ก็ไม่ต้องแก้ไขเปลี่ยนแปลงอะไร
แต่ถ้า อันใหม่ที่ส่งค่ามา เมื่อเช็คแล้ว อันเก่าไม่มีอยู่ ก็ให้ insert เพิ่มไป
ส่วนถ้า อันใหม่ ไม่มี แต่อันเก่ามี ให้ delete อันเก่าทิ้ง
จากตัวอย่าง สรุปแล้ว 1 กับ 2 นั้น ตรวจพบว่า ของเดิมมี ก็ไม่้ต้องทำอะไร
ส่วน 3 และ 5 นั้น ของเดิมไม่มี ก็ insert เพิ่ม และ 4 ของเดิมมี แต่ของใหม่ ไม่มี ให้ delete 4 ทิ้ง
ผมคิดวิธีนึงออกครับ คือ ให้ทำการ delete category ของ doc_id = ที่ต้องการ ทิ้งหมดเลย แ้ล้ว insert เข้าไปใหม่หมด
วิธีนี้ง่ายดี แต่ว่า ผมมองถึงปัญหา เรื่อง ถ้าเกิดมีการแก้ไขบ่อยๆ มันจะทำให้ ลบข้อมูล เรื่อยเปื่อย แล้วตัวเลข autonum มันจะ run เพิ่มขึ้นไปเรื่อยๆรึเปล่า
เลยไม่ค่อยอยากใช้วิธีนี้เท่าไรครับ
คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ