ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ความหมายของ ORM และ Doctrine

ORM ย่อมาจาก Object / Relational Mapping หมายถึง การ map ข้อมูลในตารางข้อมูลของฐานข้อมูลให้อยู่ในรูปของ object-oriented language ซึงจะเป็นการสร้าง Database แบบเสมือนขึ้นให้มาอยู่ในรูป language programming ทำให้ไม่ต้องไปยุ่งกับ SQL Statement ซึ่งถ้ามีการเปลี่ยนแปลงแก้ไขต้องแก้ไขที่ตัวโปรแกรมแทน และการกระทำต่างๆยังคงเป็นแบบ Relational เหมือนเดิม เช่น มีตารางชื่อ product ก็จะแปลงมาเป็น class product คุณลักษณะ (attributes) ของตาราง product ก็จะถูแปลงมาเป็น object ใน class

เราไม่จำเป็นต้องยุ่งในส่วนของ SQL (SELECT, INSERT, UPDATE, DELETE) เลย  แต่เราจะใช้ framework มาช่วยจัดการแปลงจากภาษาโปรแกรมมิ่งที่เราเขียน ไปเป็น SQL หรือ database ให้เราแทน  

สำหรับ framework นั้นก็มีหลายตัวในปัจจุบัน Hibernate,NHibernate,LINQ,SubSonic,Entity Framework,Active Record,Enterprise Library,symfony

โดยแต่ละตัวนั้นก็จะมี API ซึ่งเป็นตัวกลางในการทำหน้าที่ในการแปลงข้อมูลระหว่างฐานข้อมูลและ object รวมถึงคำสั่งพื้นฐานของการจัดการข้อมูลไม่ว่าจะเป็นการ Select,Insert,Update,Delete

ในที่นี้จะพูดถึง Symfony ซึ่งมีตัว API ที่ติดมาด้วยชื่อว่า Doctrine ในการจัดการเกี่ยว ORM

ตัว Symfony นั้นมีการทำงาน แบบ MVC (Model–view–controller) 

 

โดยในส่วนของ doctrine นั้นจะทำงานกับ Model ในการติดต่อกับ ฐานข้อมูล

เวลาที่เราต้องการจะสร้าง database table ขึ้นมา table นึง  เราไม่จำเป็นต้องเขียน SQL เพื่อ create table ขึ้นมาเลย  เราแค่เขียน   class ขึ้นมา  ซึ่ง  class นี้จะถูกเรียกว่า Entity Class จากนั้นก็กำหนด attribute ต่างๆ  ตามที่ต้องการลงไป  attribute นี้เราอาจจะมองว่ามันคือ column ของ table ก็ได้  ทีนี้ framework  มันก็จะเอา  entity class ที่เราเขียนไว้ไปแปลงเป็น table ให้เราเองครับ  
        การ map relation ต่างๆ เช่น One to One, One to Many หรือ Many to Many  เราอยากได้แบบไหน  เราก็เขียนลงไปใน  entity class นั้น  framework มันก็จะเอาไป map ให้เราเอง  มันจะสร้าง foreign key, primary key  ซึ่งเป็นความสัมพันธ์ต่างๆ ของ table ให้เองโดยอัตโนมัติ  
 
การอ่านค่าจาก table ขึ้นมาใช้   มันก็จะแปลงจากข้อมูลที่อยู่ในรูปของ row ไปเป็น object ของ row นั้นให้  ซึ่งไม่เหมือนกับการเขียน code แบบเดิมๆ  ที่ต้องเขียน code เพื่ออ่านค่ามาจาก database  และก็ค่อยจับค่าที่อ่านมาได้นั้นยัดเข้าไปใน object class เอง  ซึ่งมันก็ค่อนข้างลำบากอยู่เหมือนกันครับ  ถ้าระบบเราเป็นระบบที่ใหญ่มากๆ  การดูแลรักษา  หรือการแก้ไข code ก็จะเกิดความยุ่งยากขึ้นได้  เพราะ code ที่เราเขียนมันผูกกันไปมาเต็มไปหมด  ยิ่งถ้าแก้attribute ใน table หรือเปลี่ยนแปลงความสัมพันธ์ของ table ที  ก็ต้องมาตามแก้  Class  ที่อ้างไปถึง table นั้นๆ อีก

        พอเราหันมาใช้ ORM  มันก็จะช่วยให้งานเราสบายขึ้นเยอะ  เวลาแก้ attribute หรือความสัมพันธ์ใน Entity Class ตัว attribute หรือความสัมพันธ์ของ table ก็จะเปลี่ยนแปลงตามไปด้วย   เราอาจจะมองว่า entity class กับ database table มันคือตัวเดียวกันก็ได้ครับ  เพราะ framework  มันจะจัดการทำ mapping ให้เรา..

Credit : http://na5cent.blogspot.com/
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การจัดทำใบสั่งขาย ในโปรแกรม Open ERP
โดย Chidchanok ศ 18 ม.ค. 2019 11:55 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
1
ศ 18 ม.ค. 2019 11:55 am โดย Chidchanok
ชีวิตการทำงาน
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 11:25 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
6
ศ 18 ม.ค. 2019 11:25 am โดย จันนุสรณ์ ดีแก่
ขั้นตอนการสร้างเว็บบอร์ดย่อยภายใต้หมวดหมู่ สำหรับแอดมิน หรือผู้ดูแลระบบ
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 11:03 am บอร์ด phpBB user Guide Knowledge
0
3
ศ 18 ม.ค. 2019 11:03 am โดย จันนุสรณ์ ดีแก่
[Extension phpBB3.1.1] FlatUI Smilies Extention ไอคอนแสดงอารมณ์เพิ่มสีสันแก่เว็บบอร์ด
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 10:23 am บอร์ด phpBB 3.1 Extension Review
0
1
ศ 18 ม.ค. 2019 10:23 am โดย จันนุสรณ์ ดีแก่
[Extension phpBB3.1.1] SE Square Extension ไตล์โทนสีน้ำเงินอ่อนและฟ้าอ่อน
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 9:42 am บอร์ด phpBB 3.1 Extension Review
0
2
ศ 18 ม.ค. 2019 9:42 am โดย จันนุสรณ์ ดีแก่
สอบถามวิธีการเปิดสิทธ์ใช้งานใน google docs ค่ะ
โดย ณัฐกฤตา บุญญะฤทธิ์ ศ 18 ม.ค. 2019 9:34 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
13
ศ 18 ม.ค. 2019 10:17 am โดย ณัฐกฤตา บุญญะฤทธิ์
การใช้งาน bootstrap Tooltip
โดย abdkode พฤ 17 ม.ค. 2019 7:10 pm บอร์ด Jquery & Ajax Knowledge
0
12
พฤ 17 ม.ค. 2019 7:10 pm โดย abdkode
ว่าด้วยภาษีรถยนต์
โดย abdkode พฤ 17 ม.ค. 2019 6:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
10
พฤ 17 ม.ค. 2019 6:46 pm โดย abdkode
การทำใบเสนอราคา (Quotations) ในโปรแกรม Open ERP
โดย Chidchanok พฤ 17 ม.ค. 2019 6:37 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
12
พฤ 17 ม.ค. 2019 6:37 pm โดย Chidchanok
ความแตกต่างของ get และ post
โดย abdkode พฤ 17 ม.ค. 2019 6:19 pm บอร์ด PHP Knowledge
0
19
พฤ 17 ม.ค. 2019 6:19 pm โดย abdkode
การเพิ่มข้ออมูลลูกค้า ในโปรแกรม Open ERP
โดย Chidchanok พฤ 17 ม.ค. 2019 5:31 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
8
พฤ 17 ม.ค. 2019 5:31 pm โดย Chidchanok
เงื่อนไขในการขนส่งสินค้า
โดย Chidchanok พฤ 17 ม.ค. 2019 4:41 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
11
พฤ 17 ม.ค. 2019 4:41 pm โดย Chidchanok
ภาษีโรงเรือนและที่ดิน ต้องเสียภาษีอย่างไร
โดย Chidchanok พฤ 17 ม.ค. 2019 3:59 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
13
พฤ 17 ม.ค. 2019 3:59 pm โดย Chidchanok
โปรแกรมตัดแต่งรูป ที่ใช้กับ Ubuntu มีโปรแกรมอะไรบ้างค่ะ
โดย ณัฐกฤตา บุญญะฤทธิ์ พฤ 17 ม.ค. 2019 3:34 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
22
ศ 18 ม.ค. 2019 10:47 am โดย ณัฐกฤตา บุญญะฤทธิ์
ภาษีป้าย ต้องเสียภาษีอย่างไร
โดย Chidchanok พฤ 17 ม.ค. 2019 3:30 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
พฤ 17 ม.ค. 2019 3:30 pm โดย Chidchanok
วิดิโอใน google drive ขึ้น This video format is not supported. แก้ไขยังๆไงคะ
โดย Chidchanok พฤ 17 ม.ค. 2019 2:26 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
20
พฤ 17 ม.ค. 2019 6:10 pm โดย thatsawan
วิธีการลบ แถบหมวดเมนู .MOD(Extension) ใน phpbb
โดย Ittichai_chupol พฤ 17 ม.ค. 2019 1:59 pm บอร์ด PHP Knowledge
0
7
พฤ 17 ม.ค. 2019 1:59 pm โดย Ittichai_chupol
การขีดเส้นใต้ตัวอักษร ในเว็บบอร์ด phpBB โดยใช้เครื่องมือใน BBcode
โดย จันนุสรณ์ ดีแก่ พฤ 17 ม.ค. 2019 1:11 pm บอร์ด phpBB user Guide Knowledge
0
33
พฤ 17 ม.ค. 2019 1:11 pm โดย จันนุสรณ์ ดีแก่
หนี้สูญได้รับคืน ต้องบันทึกบัญชีอย่างไร
โดย Chidchanok พฤ 17 ม.ค. 2019 12:33 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
34
พฤ 17 ม.ค. 2019 12:33 pm โดย Chidchanok
มาทำความรู้จักกับหนี้สูญและหนี้สงสัยจะสูญ
โดย Chidchanok พฤ 17 ม.ค. 2019 11:43 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
38
พฤ 17 ม.ค. 2019 11:43 am โดย Chidchanok