Tqf/employmentstats
เนื้อหา
รายละเอียดข้อมูล
แหล่งข้อมูล: จากกองแผนงาน http://www.planning.ku.ac.th/planning/downloads/work/work_index.htm (น่าจะดูของเป็นสรุปผลครั้งที่ 2 นะครับ)
1. ข้อมูลมันจะมีอยู่ 3 ส่วน น่าจะเอามาใส่ฟอร์มข้างต้นได้หมด ยกเว้น field จำนวนผู้สำเร็จการศึกษาที่มีงานทำก่อนเข้าศึกษา ซึ่งเราต้องไปคุยกับเค้าอีกทีว่าจะเอาไง
2. ปัญหาคือในข้อมูลระบุสาขามาอาจจะไม่ตรงกับในหลักสูตร เช่น "วิศวกรรมศาสตรบัณฑิต (วิศวกรรมโยธา-ทรัพยากรน้ำ)" ชื่อในระบบเราเป็น "วิศวกรรมศาสตรบัณฑิต สาขาวิศวกรรมโยธา-ทรัพยากรน้ำ" ซึ่งตรงนี้ช่างมันก่อน เราค่อยไปทำหน้าให้เค้าลิงก์ข้อมูลมา (แถมมีภาคปกติภาคพิเศษแยกกันอีก)
สิ่งที่คุณน่าจะทำคร่าว ๆ
1. สร้างตาราง importedcurriculumemploymentstats (อย่าลืม migration) และโมเดล Model_ImportedCurriculumEmploymentStat
2. เขียน script นำเข้าข้อมูล
3. manually เชื่อมโยงของข้อมูลที่ import มา กับข้อมูลหลักสูตรที่ต้องการกรอก (สักวิธี เดี๋ยวผมเขียนอธิบายเมลถัดไป)
4. ทำหน้า employmentstats ที่แสดงข้อมูลดังกล่าว และมีช่องหนึ่งช่องให้เขียนอธิบาย
ตารางและโมเดล
โดยมากเวลานำเข้าข้อมูลจากภายนอก ผมจะไม่เก็บลงข้อมูลจริงโดยตรง แต่จะสร้างตารางและโมเดลที่ prefix ว่า imported ไว้ก่อน กันบึ้ม
สำหรับข้อมูลการได้งานทำนั้น จริง ๆ มันมีโมเดลอยู่แล้ว ชื่อ Model_CurriculumEmploymentStat (curriculumemploymentstat) แต่ฟิลด์มันจะไม่ครบ (เพราะว่ามันตามฟอร์มเดิม)
ผมเสนอให้คุณดำเนินการดังนี้
1. สร้างตาราง importedcurriculumemploymentstats (ปกติผมจะสร้างใน phpmyadmin สร้าง key อะไรให้เรียบร้อย แล้ว export มาใส่ migration (อยู่ที่ application/migration) อย่าลืม postfix มันด้วย _UP นะ) ตารางนี้จะล้อกับ curriculumemploymentstats
- convention ของตาราง ต้องมี field id เป็น primary key เป็น int แล้วก็ auto increment
- ให้เพิ่มฟิลด์ให้ครบตามฟอร์ม
- ให้มีฟิลด์ imported_curriculum_title (ตรงนี้จะเป็นชื่อที่ไม่ตรง แต่ตรงตามที่เรา import มา)
- เพิ่มพิลด์ year ระบุปีของข้อมูลด้วย
- เพิ่มฟิลด์ annualcurriculumresult_id (ตรงนี้ ถ้าเค้าเชื่อมข้อมูลแล้ว เราจะปรับให้ตรงกับ id ของตัวมคอ.7)
2. สร้างโมเดล Model_ImportedCurriculumEmploymentStat (ล้อกับ Model_CurriculumEmploymentStat)
การนำเข้าข้อมูล
เขียนสคริปต์นำเข้าข้อมูลโดยดูตัวอย่างจากบรรดา application/classes/controller/cli/import* เช่น importtqf7curriculuminstructors.php
พวกนี้จะเป็น controller ที่คุณจะเรียกผ่าน CLI โดยจะเรียกจาก tqf directory เลย ประมาณ
$ php index.php --uri=cli/importtqf7curriculuminstructors --file=data.csv --year=2557
เจ้า --file และ --year เนี่ยะ จะเป็น options ที่คุณจะอ่านได้โดยสั่งประมาณ
$options = CLI::options('file','year'); if((!isset($options['file'])) || (!isset($options['year']))) { exit(1); } $filename = $options["file"];
ที่เหลือคุณลองดูตัวอย่างในโค้ดเอานะครับ
ทีนี้ ข้อมูลคุณมาจาก excel 3 ไฟล์ คุณอาจจะฟิตเขียน script 3 อันก็ได้ หรือจะเอามารวมด้วยมือก่อน แล้วค่อย export มาเป็น csv ไฟล์เดียวก็ได้นะครับ (ผมนิยมทำแบบนี้)
ปรับโมเดล CurriculumEmploymentStat เดิม
อย่างที่ผมบอกไว้ ปกติผมจะมีข้อมูลจริงที่ลิงก์กับ curriculum result อีกอัน (จะไม่ขึ้นด้วย imported) แต่ของเดิมมันฟิลด์ไม่ครบ จะลบก็ไม่ได้ เพราะว่ามีข้อมูลของปีก่อน ๆ อยู่ ผมเลยกะว่าจะเติมฟิลด์ในนี้
คุณก็อาจจะไปเติมใน phpmyadmin แล้วไปสร้างเพิ่มใน migration
ส่วนของโมเดลนี้ ปกติที่ผมทำคือพอโหลดหน้าข้อมูล employmentstats ครั้งแรก ผมก็จะ import ข้อมูลมาจาก ImportedCurriculumEmploymentStat มาใส่ใน model ของจริงอันนี้ (เดี๋ยวผมเอาตัวอย่างมาใส่ให้)