ข้ามไปที่เนื้อหาหลัก

ORM คืออะไร มีประโยชน์อย่างไร?

ORM คืออะไร?

Object Relational Mapping (ORM) เกิดมาจากวันที่การเขียนโปรแกรมเดินทางมาถึงช่วงที่ OOP เป็นที่นิยม แต่การ Query ข้อมูลจากฐานข้อมูลยังไม่อยู่ในรูปแบบ OOP ทำให้เกิดความยุ่งยากกว่าที่ควรจะเป็นและเกิดความสงสัยว่า การดึงข้อมูลจากฐานข้อมูลจะอยู่ในรูปแบบ OOP ได้หรือไม่?

ผลพวงจากความพยายาม จึงกำเนิด ORM กับ DBMS ทำให้ภาษาที่เราเขียนนั้นสามารถทำการ mapping (ลอกแบบ) โดยสร้างชุดคำสั่งในการเรียกใช้งานรูปแบบซ้ำๆ ซึ่งประโยชน์ที่ได้คือลดการเขียนโค้ดลง ตัวอย่างที่เห็นชัดเจน เช่น การ insert, update, delete

// Normal Query
$sql = "SELECT * FROM tbl_users";
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);

// ORM Query
Ex. Codeignitor
$data = array('username' => 'username1', 'password' => 'password1');
$this->db->insert('users', $data); 

Ex. Yii
$model = new Users;
$model->username = 'username1';
$model->password = 'password1'

จะเห็นว่า การเขียนในรูปแบบ ORM นั้น แทบจะไม่ต้องเขียน Syntax SQL เลย :)
ขอจบการแนะนำแบบสั้นๆ นะครับ

แหล่งข้อมูลอ้างอิง
http://www.thaicreate.com/community/object-relational-mapping-orm.html
http://na5cent.blogspot.com/2013/01/orm-object-relational-mapping-java.html
http://www.narisa.com/forums/index.php?showtopic=34711

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การเพิ่ม Font ภาษาไทยอื่นๆ เข้าไปใช้งานใน MPDF

เนื่องมาจากผมได้มีโอกาสจับงานที่ต้องแปลงหน้าเว็บให้เป็น PDF ลองๆ หาข้อมูลก็ไปเจอเจ้าตัวนี้ MPDF  ซึ่งจริงๆ แล้วก็มีให้ใช้งานอีกหลายๆ ตัว สาเหตุที่เลือกใช้งานตัวนี้เพราะมัน ค่อนข้างจะติดตั้ง และใช้งานง่าย และยังสามารถอ้างอิง CSS เข้ามาช่วยจัดหน้าตาใน PDF ได้อีกด้วย ซึ่งผลที่ได้เพี้ยนไปจากตัวจริงไม่มากครับ แต่ที่ทำให้เลือกใช้งานเพราะการเพิ่มฟ้อนท์ภาษาไทย เข้าไปนั้นค่อนข้างง่ายครับ เลยจะขอมาแนะนำดังนี้

การเขียน Force download ด้วย PHP

การทำ Force download ด้วย PHP นั้น ไม่ไช่เรื่องใหม่อะไร มีการเขียนโค้ดด้วยลักษณะนี้อยู่บ่อยๆ แต่ผมต้องนำมาแปะเป็นทริคเล็กน้อยกันตัวเองลืมครับ ประโยชน์ของมันคือในกรณีที่เราไม่สามารถเข้าไปจัดการ Apache config ได้เราสามารถใช้วิธีนี้แทนได้

แก้ไขปัญหา Laravel+Vite redirect ไปที่ path build

  ก่อนหน้านี้ติดปัญหาเรื่องการพัฒนาเว็บแอพลิเคชันด้วย Laravel และ Vuejs โดยใช้ Vite ควบคู่ในการพัฒนา Frontend ตอนรัน npm run dev ก็ดูเหมือนจะใช้งานได้ปกติ แต่พอมาลอง build ดูปรากฏว่าตัว application คอย redirect ไปที่ path /build ตลอดเลย พอหาข้อมูล ไปๆ มาๆ ก็เจอว่าตอนที่เขียนเราใช้ router ของฝั่ง vuejs ซึ่งทำเป็น SPA const router = createRouter({     history: createWebHistory(import.meta.env.BASE_URL), }); จากโค๊ดด้านบนนี่แหละที่ มึนอยู่หลาย ชั่วโมง แก้ง่ายๆ ที่สุด คือทำแบบนี้ const router = createRouter({     history: createWebHistory(), }); เข้าใจว่า import.meta.env.BASE_URL ค่า default น่าจะเป็น /build ถ้าเอาออกจะช่วยแก้ไขปัญหาได้ แต่ยังไม่ได้ลองว่าถ้าเราไปกำหนด env ตัวนี้ขึ้นมาก็อาจจะช่วยแก้ไขปัญหาได้ด้วยหรือเปล่า? VITE_BASE_URL="/" ใครลองแล้วได้ผลมาคอมเม้นกันด้วยนะ วันนี้ไปก่อนละ