- student_id
- year
- semester
- course_code
- grade_char
รูปแบบตารางของ CSV
หลังจากที่ตกลงกันแล้ว ก็ออกแบบรูปแบบ DBMS ผ่าน Chart ได้ตามนี้
Chart ของ Database
จากนั้นก็เริ่มสร้าง Database, สร้าง Table, จัดการ Foreign Key หรืออื่นๆ ซึ่งเราใช้โปรแกรม DB Browser for SQLite
โลโก้ DB Browser for SQLite
หน้าต่างโปรแกรม
จากนั้นให้สร้าง Database และ Table ซึ่งมีดังนี้
ตาราง Student
ตาราง Subject
ตาราง Grade
ตาราง Main
เมื่อสร้าง Table เสร็จกเริ่มเขียนโค้ด ซึ่งมีขั้นตอน ดังนี้
- สร้าง Github และ branches เพื่อให้เพื่อน Commit (https://github.com/Nithichai/Database_Group4)
- ออกแบบ Class สำหรับตาราง แจกให้เพื่อนแต่ละคนทำฟังก์ชัน ซึ่งมีดังนี้
- init (์นิธิชัย)
- select_all (ชัยสิทธิ์)
- insert (พันธกานต์)
- update (ชัยสิทธิ์)
- delete (จิรวัฒน์)
- show_all (นิธิชัย)
- import_csv (นิธิชัย)
Class Diagram
- เริ่มเขียนโค้ด ซึ่งเป้าหมายหลัก คือ สามารถอิมพอร์ตไฟล์ CSV เข้าสู่ DBMS ได้ แล้วทดสอบผล
ผลการทดสอบจาก Command Line
ผลการทดสอบจากโปรแกรม
เมื่อทดสอบแล้วพบว่า โค้ดเราสามารถอ่านไฟล์ CSV ในโฟลเดอร์ได้ แล้วนำข้อมูลทั้งหมดเข้า Database ได้และยัง Conflict แถวนั้นหากไม่มีข้อมูลในตาราง Foreign เช่น ใส่รหัสวิชาที่ไม่มีในตาราง Subject เป็นต้น
สรุป
1. เริ่มต้นการทำงานด้วยการจัดรูปแบบ CSV ให้ตรงรูปแบบทุกคน แล้วนำมารวบรวมกัน
2. จากนั้นสร้างออกแบบ DBMS ให้เหมาะสมแก่การใช้งาน
3. เราใช้โปรแกรม DB Browser for SQLite มาเป็นตัวช่วยการทำงาน ในการสร้าง Database หรือ สร้าง Table เป็นต้น
4. จากนั้นแบ่งให้เพื่อนแต่ละคนไปเขียนโค้ดส่วน method ตามที่ตกลงกันไว้
5. เมื่อเขียนเสร็จแล้ว ก็นำมารวบรวมแล้ว แล้วทดสอบ ซึ่งผลสรุปได้ว่า เราสามารถ insert ข้อมูลในไฟล์ CSV ที่อยู่โฟลเดอร์ทั้งหมด ลงมาในตาราง Main เพียงแต่ข้อมูลที่เป็น Super Key นั้นต้องมีข้อมูลในตารางที่เชื่อมกับ Foreign Key ด้วย (หากไม่มีจะ insert ไม่ได้)
6. Commit งานที่สมบูรณ์ไปยัง Github ที่เตรียมเอาไว้
7. จัดทำสไลด์เพื่อแสดงหน้าชั้นเรียน
ปัญหาที่พบ
ทางเทคนิค
1. ตอน insert ข้อมูลเข้าไปแล้ว แต่ใส่เข้าไม่ได้เพราะรหัสวิชาไม่ตรงกัน เกิดจากที่ Spreadsheet ลบเลขศูนย์ที่หน้ารหัสวิชาออกไป แล้วพอมาเทียบกับ Foreign Table แล้วมันหาไม่เจอ แก้ปัญหาด้วยการปรับช่องที่ใส่รหัสวิชาเป็น “ข้อความธรรมดา” หรือใส่ “ ‘ ” ไปที่หน้ารหัสวิชา (‘080303903)
2. ใส่ข้อมูลซ้ำได้ แก้ปัญหาโดยตั้งให้ข้อมูลที่ทำเป็น Foreign Key เป็น Primary Key ทั้งหมด
สรุป
1. เริ่มต้นการทำงานด้วยการจัดรูปแบบ CSV ให้ตรงรูปแบบทุกคน แล้วนำมารวบรวมกัน
2. จากนั้นสร้างออกแบบ DBMS ให้เหมาะสมแก่การใช้งาน
3. เราใช้โปรแกรม DB Browser for SQLite มาเป็นตัวช่วยการทำงาน ในการสร้าง Database หรือ สร้าง Table เป็นต้น
4. จากนั้นแบ่งให้เพื่อนแต่ละคนไปเขียนโค้ดส่วน method ตามที่ตกลงกันไว้
5. เมื่อเขียนเสร็จแล้ว ก็นำมารวบรวมแล้ว แล้วทดสอบ ซึ่งผลสรุปได้ว่า เราสามารถ insert ข้อมูลในไฟล์ CSV ที่อยู่โฟลเดอร์ทั้งหมด ลงมาในตาราง Main เพียงแต่ข้อมูลที่เป็น Super Key นั้นต้องมีข้อมูลในตารางที่เชื่อมกับ Foreign Key ด้วย (หากไม่มีจะ insert ไม่ได้)
6. Commit งานที่สมบูรณ์ไปยัง Github ที่เตรียมเอาไว้
7. จัดทำสไลด์เพื่อแสดงหน้าชั้นเรียน
ปัญหาที่พบ
ทางเทคนิค
1. ตอน insert ข้อมูลเข้าไปแล้ว แต่ใส่เข้าไม่ได้เพราะรหัสวิชาไม่ตรงกัน เกิดจากที่ Spreadsheet ลบเลขศูนย์ที่หน้ารหัสวิชาออกไป แล้วพอมาเทียบกับ Foreign Table แล้วมันหาไม่เจอ แก้ปัญหาด้วยการปรับช่องที่ใส่รหัสวิชาเป็น “ข้อความธรรมดา” หรือใส่ “ ‘ ” ไปที่หน้ารหัสวิชา (‘080303903)
2. ใส่ข้อมูลซ้ำได้ แก้ปัญหาโดยตั้งให้ข้อมูลที่ทำเป็น Foreign Key เป็น Primary Key ทั้งหมด
3. ปัญหาเรื่องการติดต่องาน หรือต้องการที่จะดูโค้ดของเพื่อนเพื่อช่วยกันแก้ปัญหา แก้โดยใช้ Google Hangout ที่พูดคุยกัน และแชร์หน้าจอเพื่อดูโค้ดเพื่อนอีกคนได้
google hangout
4. ติดงานกิจกรรม Comday ทำให้เวลาทำงานไม่พอ แก้ปัญหาโดยพอหลังจบงาน Comday ก็เริ่มทำงานทันที และในระหว่างงานคอมเดย์ก็มีช่วงเวลาว่าง จึงเริ่มทำการบ้าน
ลิ้งก์ที่เกี่ยวข้อง
No comments:
Post a Comment