วันนี้ได้เห็นฝาขวดกรีนทีของอิชิตัน เขียนว่า ส่งรหัสมั่ว ซ้ำเกิน 3 ครั้ง ถูกตัดสิทธิ์!!!สืบเนื่องมาจากการอิชิตันส่งเสริมการขายมีนโยบายให้ส่งรหัสใต้ฝาผ่าน SMS เพื่อชิงโชค แล้วอาจเกิดมีคนทดลองส่งข้อมูลมั่ว ๆ เพื่อหวังให้ได้โชคทองเป็นล้าน หรือไอโฟน5
ปัญหาเหล่านี้จะแก้ไขได้ถ้าผู้ผลิตฝาขวด และนักวิเคราะห์และออกแบบฐานข้อมูลคอมพิวเตอร์ ของระบบรับ SMS ชิงโชคดังกล่าว มีความรู้ที่ถูกต้อง
1. การแก้ปัญหารหัสมั่ว ผู้ผลิตจะต้องมีมาตรฐานในการสร้างรหัสโดยสร้างหลักสุดท้ายสำหรับตรวจสอบที่ได้จากการคำนวณหลักต่าง ๆ มาบวก ลบ คูณ หาร กัน (แล้วแต่ผู้สร้างจะกำหนด ซึ่งปกติเขาจะไม่แจ้งสูตรให้คนทั่วไปทราบ) แล้วได้ผลลัพธ์มาหนึ่งค่าแล้วมาหารเอาเศษ (modulus) ด้วย 10 ซึ่งผลที่ได้จะมี 0-9 ดังนั้นเมื่อใครก็ตามที่ส่ง SMS มาก็จะต้องประมวลผลหาหลักสุดท้ายก่อน ถ้าตัวเลขหลักสุดท้ายถูกต้อง ก็แสดงว่า ผู้ส่ง SMS มาจากฝาจริง แต่ในทางกลับกันถ้าผิดแสดงว่าส่งรหัสมั่วมา คนเขียนโปรแกรมรับ SMS ก็ไม่ต้องบันทึกข้อมูลเข้าสู่คอมพิวเตอร์ แบบนี้สามารถแก้ปัญหาจากลูกค้าส่งรหัสผิดพลาดที่เกิดจากมองตัวเลขไม่ชัดได้ และปัญหาที่เกิดจากผู้ส่งต้องเก็บฝาเอาไว้เป็นหลักฐานก็ไม่ต้องมาดูอีก
2. ในการแก้ปัญหาการส่งรหัสตัวเดิมซ้ำ แก้ได้โดยออกแบบฐานข้อมูล ให้กำหนดรหัสใต้ฝาเป็น Primary Key ในตารางที่รับข้อมูลจาก SMS ออกแบบมาอย่างน้อยต้องมีลักษณะดังต่อไปนี้
-------------------------------------------------
รหัสฝา PK
-------------------------------------------------
หมายเลขโทรศัพท์
-------------------------------------------------
บทสรุป ตามหลักทฤษฎีของฐานข้อมูลแล้ว เมื่อไรก็ตามที่เรากำหนดให้ฟิลด์ใด ๆ เป็น Primary Key
ฟิลด์นั้นจะไม่สามารถบันทึกข้อมูลนั้นซ้ำเข้าสู่ตารางได้เลย
หวังว่า แนวคิดง่าย ๆ แบบนี้คงมีประโยชน์สำหรับผู้ที่ยังแก้ปัญหาเหล่านี้ไม่ได้
สำหรับนักศึกษาสาขาคอมพิวเตอร์ ที่ทำโปรเจ็คแล้วมีข้อผิดพลาดจากการออกแบบ ขอให้พึงหลีกเลี่ยงข้อผิดพลาดง่าย ๆ แบบนี้ ที่มิอาจยอมให้ผ่านได้