cust_id | cust_name | cust_address |
1 | นายโรเบิร์ต | ... |
2 | นายวิลสัน | ... |
3 | นายทอมครุซ | ... |
ข้อมูลในรายงาน sale_report ประกอบด้วย
sale_id | sale_date | sale_cust_id |
1 | 2012-02-01 | 3 |
2 | 2012-02-03 | 1 |
3 | 2012-02-20 | 2 |
สังเกตในฟิลด์ที่ 3 ของตาราง sale_report จะเป็นการเก็บรหัสอ้างอิงลูกค้า
ปัญหาที่พบคืออะไร???
เมื่อเวลาผ่านไป แล้วลูกค้าเกิดเปลี่ยนชื่อ ประวัติการซื้อขายก็จะเพี้ยน
พอเรียกรายงานกลับมาดู ก็จะพบว่าเป็นชื่อใหม่ ส่วนเอกสารที่เคยพิมพ์ออกมาเป็นคนละชื่อ
ตัวอย่างเช่น นายโรเบิร์ต ซื้อรถเมื่อปีที่แล้ว วันที่ 2 ก.พ. 2012
ข้อมูลทั้งหมดถูกพิมพ์เก็บเข้าแฟ้มไปแล้ว
หลังจากนั้นเขาเกิดเปลี่ยนชื่อ เป็น นายสตีเว่น
มาปีนี้อยากเรียกดูรายงานของปีก่อน พอปริ้นท์ออกมา ปรากฏว่าเอกสารไม่ตรงกัน
ข้อมูลนายโรเบิร์ตหายไป และมีข้อมูล นายสตีเว่น โผล่มาจากไหนก็ไม่รู้
สาเหตุก็เพราะเรียกชื่อลูกค้า จะใช้ id อ้างอิง ทำให้ได้ข้อมูลที่เขาเปลี่ยนชื่อไปแล้ว
ดังนั้น เพื่อให้รายงานประวัติไม่เพี้ยนไปเพราะมีข้อมูลใหม่มาแทนที่ ให้ปรับปรุงตารางเป็น
sale_id | sale_date | sale_cust_id | sale_cust_name |
1 | 2012-02-01 | 3 | นายทอมครุซ |
2 | 2012-02-03 | 1 | นายโรเบิร์ต |
3 | 2012-02-20 | 2 | นายวิลสัน |
เมื่อเพิ่มฟิลด์เก็บชื่อเข้าไปด้วย เมื่อเรียกรายงานเก่า
ต่อให้เปลี่ยนชื่อไป ก็ยังได้ข้อมูลที่ตรงกับเอกสารที่เก็บไว้ในแฟ้มของปีก่อนๆ
และเรายังสามารถแสดงคำเตือนได้ด้วย ว่าปัจจุบันมีการเปลี่ยนชื่อหรือเปล่า
โดยการนำรหัสไปดึงข้อมูลมาเทียบกัน
ตารางทั้ง 2 นี้เป็นเพียงแค่ตัวอย่าง สำหรับงานบางงานแล้ว อาจจะไม่จำเป็นต้องเก็บข้อมูลในฟิลด์ของตารางอื่นไปด้วยก็ได้ แต่งานบางงาน อาจจะต้องการเก็บประวัติซึ่งเกิดขึ้น ณ ตอนนั้น จริงๆ
ในบทความต่อไป เราจะมาพูดถึงเรื่อง ความสำคัญของการกำหนดวันที่ในการเรียกรายงาน
ซึ่งจะต้องใส่ใจให้มากๆ เพราะประวัติคือสิ่งที่ผ่านมาแล้ว ถ้าเราไม่ระมัดระวัง อาจจะหลงกับข้อมูล ณ ปัจจุบันทำให้รายงานเพื้ยนได้
ความคิดเห็น
แสดงความคิดเห็น