Posts Tagged ‘ORM’
จาก Data Model สู่ระบบทั้งระบบ
แหม่ช่วงก่อนกินข้าวพักนึงเนี่ย เขียนสักหน่อย หุหุ (ชอบมาเขียนตอนก่อนกินข้าว ก็หิวดิ) content นี้เป็นเรื่อง “จาก model สู่ระบบทั้งระบบ” ซึ่งหลายๆ คนก็งงนะ ว่า model คืออะไร เป็นแบบนี้หรือเปล่า
- http://www.thaidphoto.com/forums/showthread.php?t=140907
- หรือ แบบนี้ http://www.thaidphoto.com/forums/showthread.php?t=129729
555 ม่ายช่าย model แบบนี้นะครับ โอ้ยๆ ไม่ใมวดูแล้วหื่น เข้าเรื่องดีกว่า
Model ที่เรียกๆกันติดปากนี่ก็คือ Data Model ครับ
Data Model คือส่วนหนึ่งของการ Analyst จาก Requirement ครับ ในแง่การพัฒนาระบบแล้ว Data Model มีความสำคัญมากทีเดียว เพราะมันก็คือ รูปแบบในการจัดเก็บข้อมูลต่างๆ ของระบบนั้นๆเลย
ให้คิดว่า ถ้าคุณจัดเก็บข้อมูลผิดรูปแบบก็เท่ากับว่า คุณมั่วไปแล้ว ถ้าเขียน code มั่วอีก โอ้ว พระเจ้า ห่าอะไรของมันวะเนี่ย
ในการพัฒนา Data Model จะได้ออกมาช่วงหลังๆ ของการ Analyst เพราะกลั่นกรอง Requirement เสร็จแล้วถึงจะได้ แต่ละที่ ถ้า Requirement ต่างกัน Model ก็จะต่างกัน
Requirement เดียวกัน โครงสร้างของ Data Model อาจจะต่างกันก็ได้ไม่มีใครผิดขึ้นอยู่กับการ Analyst
อ่านเะพิ่มเติมเกี่ยวกับ Data Model ได้ที่นี่
เมื่อเราได้ Data Model แล้ว เราก็เอาไป Map ด้วย ORM เราก็เขียนระบบได้แล้วสบาย
สรุปๆ
- ได้ Requirement
- เอาไป Analysis
- ได้ Data Model และ Logic ต่าง
- เอา Data Model ไป ORM
- เอา ORM ไปเขียน Code ตาม Business Logic ที่คิดไว้
อันนี้สรุปๆนะไม่ได้ตรงเป๊ะๆ และระบบที่ใหญ่มากๆ ก็เกิดขั้นตอนที่มากกว่านี้ ถ้าเขียนอะไรเล่นเล็กๆ ก็สบาย คิดเองทำเอง แก้เอง ใช้เอง สู้ๆ
OR Mapping (แบบฉบับ wiki eng)
ขอคัดลอกมา แปล แล้ว อธิบายย่อๆ นะครับ เพราะมันคือหลักการเฉยๆ เอาให้รู้ว่ามันคืออะไร จะได้ใช้ framework ได้ work จริงๆ ไม่อย่างนั้นคุณก็จะใช้ framework แบบ ไม่ work เลยซะทีเดียว
Object-relational mapping (ORM, ORM, and ORM) in computer software is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages. This creates, in effect, a “virtual object database” that can be used from within the programming language. There are both free and commercial packages available that perform object-relational mapping, although some programmers opt to create their own ORM tools.
ถ้าใครอ่าน Eng ก็ไม่ต้องอ่านข้างล่างนี้ ครับ
ความหมายของ OR Mapping หรือที่เรียกเต็มๆ ว่า Object-relational mapping โดยมันมีตัวย่อหลายแบบ เพราะคนที่ใช้มัน ขี้เกียจต่างๆ กันเลยเขียนได้หลายแบบ คือ ORM, O/RM หรือ ที่เราเขียนไปเป็นหัวข้อ OR Mapping
ตามที่ wiki บอกมันคือเทคนิคนะครับ(ไม่ใช้หลักการอะไรที่จะบังคับ) ในการ convert ข้อมูลระหว่าง ข้อมูลที่อยู่ใน relational database (ไอ้ที่เราเรียก Database จนติดปากในปัจจุบัน) กับ Object oriented programming language (ภาษาที่เราใชเงานเขียนโปรแกรม)
โดยเราจะคิดว่า object ที่เราใช้งานอยู่คือข้อมูลที่อยู่ใน database แล้วเรียกหรือใช้งานมันเลย โดยข้ามอะไร หรือ ข้อแม้อะไรต่างๆ ให้ object พวกนั้นทำงานไปหมดเลยไม่ต้องไปสนใจมัน ผ่าน OR Mapping Tools
แปลคร่าวๆ ไปแล้วมาดูจริงๆกัน เช่นเราทำ database 2 field คือ id และ name เราก็จะแนวคิดว่า object นั้นมี 2 attribute คือ id และ name
ข้อมูลหลายๆ record ก็คือ array ของ object
เป็นไงง่ายมะ หุหุ ฟังดูมันก็เหมือนกับจะง่ายแหละนะ ไม่ต้องคิดอะไรมาก เพราะเราเองไม่ได้เขียน OR Mapping Tools เอง ก็สบาย
ข้อมูลที่เขียน แปลมาจาก http://en.wikipedia.org/wiki/Object-relational_mapping ซึ่งถูกปัดฝุ่นแล้วชื่อได้ แต่คำพูดที่ผมแปล ยังไม่ได้ปัดฝุ่นนะ มันยังมัวอยู่อย่าเอาไปใช้ สุมสี่สุ่ม 5 เพราะรายละเอียดความจริงแล้วมันเยอะจนอ่านไปหลายวันได้เลยกว่าจะเข้าใจ แต่ OR Mapping ถูกใช้งานใน อุตสาหกรรม การผลิต software มาก ทำให้ถ้าเข้าใจแล้วจะทำอะไรต่อไปได้เยอะครับ