***สำหรับท่านที่ไม่ต้องการอ่าน ข้ามไป download ตัวที่แก้ไขแล้วได้เลยครับ
หรือถ้าต้องการที่รวมรหัสไปรษณีย์ไว้ด้วยแล้ว (มีตารางรหัสไปรษณีย์ ทำ relation ไว้กับ ตำบล อำเภอ จังหวัดแล้ว) ก็ไปดู
ตอนที่ 2 ฐานข้อมูล MySQL ตำบล อำเภอ จังหวัด ตอนที่ 2 เพิ่มรหัสไปรษณีย์; Thailand Provinces, Amphures, Districts in MySQL Database - Add Zipcode
แต่หลังจากเอามาแล้วทำการตรวจสอบพบว่า ข้อมูลมีการเพิ่มจังหวัดบึงกาฬแล้ว แต่อำเภอและตำบลกลับยังไม่เพิ่ม จึงต้องทำการเพิ่มข้อมูลดังกล่าวเพื่อให้ฐานข้อมูลมีความสมบูรณ์
เครื่องมือที่ใช้ก็มีประจำเครื่องไว้แล้ว ดังนี้ครับ
- MySQL
- Phpmyadmin
- ฐานข้อมูลตำบล อำเภอ จังหวัด ตัวเดิมที่ยังไม่ได้รับการแก้ไข
(ลง Appserv ไว้ก็ได้ครบครับ ของผม AppServ 2.5.10)
ขั้นตอนที่ 1 สร้างฐานข้อมูล แล้ว import เจ้า .sql ที่โหลดมาได้เข้าไปก่อน จะพบว่า มีการเพิ่มจังหวัดบึงกาฬไปแล้ว
ภาพแสดงจังหวัดบึงกาฬ โดยมีรหัสจังหวัดเป็น 77
จากภาพด้านบน นราธิวาส มีรหัสเป็น 76 ส่วนบึงกาฬ มีรหัส 77
ขั้นตอนที่ 2 ตรวจสอบตาราง amphur ว่ามีอำเภอที่มีจังหวัดที่ 77 หรือไม่
ภาพแสดงขั้นตอนการตรวจสอบอำเภอในจังหวัดบึงกาฬ (province_id = 77)
หลังจากคลิก "ลงมือ" ผลปรากฎว่า
ภาพแสดงผลลัพธ์หลังจากค้น คือ ไม่พบอำเภอที่อ้างอิงรหัสจังหวัดบึงกาฬอยู่เลย
ขั้นตอนที่ 3 ตรวจสอบ fields ข้อมูลของ ตาราง amphur มี schema ดังนี้
- AMPHUR_ID = รหัสฐานข้อมูลของอำเภอ ตัวนี้ต้องเป็น auto increment ซึ่งจะ run ต่อเนื่องจากตัวเลขในอำเภอสุดท้าย
- AMPHUR_CODE = เป็นรหัสอำเภอ ตอนแรกก็สงสัยเหมือนกันครับ ว่ามันคืออะไร แต่พอจะเดาได้ว่ามันสอดคล้องกับรหัสไปรษณีย์ครับ คือ ตัวเลขใน field นี้มี 4 หลักครับ โดย ตัวเลข 2 หลักแรกจะเป็นตัวเลขรหัสไปรษณีย์ 2 ตัวแรกครับ ส่วน 2 หลักหลังก็รันตามลำดับในแต่ละจังหวัดครับ เช่น อำเภอเมืองนครศรีธรรมราช มี AMPHUR_CODE = 8001 โดย 80 เป็นรหัสจังหวัด ส่วน 01 เป็นอำเภอลำดับต้นๆ ของจังหวัดนครศรีธรรมราช (ที่ใช้คำว่าต้นๆ เพราะหากดูในฐานข้อมูลจริงๆ แล้ว 2 หลักหลังมีการเว้นช่วงไว้ อาจเนื่องจากการสำรวจที่มีแนวโน้มจะเกิดอำเภอในละแวกเดียวกัน จึงต้องเว้นไว้สำหรับอนาคตข้างหน้า)
- AMPHUR_NAME = ชื่ออำเภอ
- GEO_ID = รหัสฐานข้อมูลของภาค
- PROVINCE_ID = รหัสฐานข้อมูลของจังหวัด
จากนั้นก็ไปดูรหัสไปรษณีย์ของจังหวัด บึงกาฬ กันครับ ค้นใน google พบที่นี่ครับ http://www.noplink.com/postcode_pv.php?p=บึงกาฬ
จะเห็นว่ารหัสนำหน้า 2 ตัวแรกคือ 38 เมื่อไปดูในฐานข้อมูล พบว่า
ภาพแสดง AMPHUR_CODE ที่ข้าม 38XX ไป
จากภาพเมื่อเราไปดูพบว่ามีการเว้นรหัสนำหน้า 38 ไว้ คือ 37XX แล้วข้ามไป 39XX เลย ดังนั้นเราจึงสามารถเพิ่มอำเภอที่อยู่ในจังหวัดบึงกาฬ (รหัส 38) ได้เลยในขั้นต่อไป
ขั้นตอนที่ 4 ไปสร้างข้อมูลใน Excel ไว้ก่อน
จากภาพใช้ข้อมูลใน wiki เพื่อเรียงลำดับประชากรจากมากไปน้อย จะได้อำเภอตามลำดับที่ถูกต้องครับ แล้วเอาไปวางใน Excel แล้วเติมข้อมูลให้ครบ
ภาพแสดงการสร้างข้อมูลใน Excel
จากภาพด้านบน GEO_ID = 3 คือรหัสภาคตะวันออกเฉียงเหนือ ส่วน AMPHUR_ID ตัวสุดท้ายคือ 998 ดังนั้นตัวต่อไปคือ 999
จากนั้นให้บันทึกในรูปของ .CSV
ภาพแสดงการบันทึก .CSV
จากนั้นในไฟล์ .csv เราต้องลบหัวตารางออก (ชื่อ field) และปรับตัว encode เป็น utf-8 เพื่อรองรับภาษาไทยที่ถูกต้อง โดยการเปิดไฟล์ .csv ด้วยโปรแกรม Notepadd++ (โหลดได้จาก filehippo.com)
ภาพแสดงข้อมูลที่ลบหัวออกแล้ว
ภาพแสดงการเลือก Encode สำหรับภาษาไทยใน MySQL
เสร็จแล้วก็บันทึก
ขั้นตอนที่ 5 นำเข้าฐานข้อมูล อำเภอ
ภาพแสดงการนำเข้า .csv
ภาพแสดงหลังนำเข้าข้อมูลอำเภอสำเร็จ
ขั้นตอนที่ 6 นำเข้าข้อมูล ตำบล
DISTRICT_ID = 8861 เป็นต้นไป
DISTRICT_CODE = 38XXXYY โดย 38XX มาจากเลขอำเภอของเดิม ส่วน YY เป็นลำดับของตำบล
DISTRICT_NAME = ชื่อตำบล
AMPHUR_ID = 999-1006
PROVINCE_ID = 77
GEO_ID = 3
รู้ดังนี้แล้วก็ไปเตรียมไฟล์ Excel เช่นเดียวกันกับตอนทำอำเภอ ได้มาประมาณนี้
ภาพแสดงการเตรียม Excel ของตำบล
จากนั้นก็บันทึกเป็น .csv แล้ว convert to utf-8 without BOM ตามเดิม แล้ว import ลงในตาราง district
ภาพแสดงข้อมูลตำบลในจังหวัดบึงกาฬ หลัง import แล้ว
ขั้นตอนที่ 7 ลบข้อมูลเดิมที่มีการอ้างอิงผิด ออกไป
ภาพแสดงตัวอย่างการอ้างอิงรหัสจังหวัดจาก 77 เป็น 97
เป็นอันเสร็จ
ท่านสามารถโหลดฐานข้อมูลที่แก้ไขสมบูรณ์แล้วได้ด้านล่างนี้ครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น