Tuesday, May 27, 2014

What is Object Relational Mapping (ORM) php and magento

ORM stands for Object Relational Mapping. It’s a programming technique used to convert different types of data to Objects and vice versa.

In Magento, ORM is shown as Model (based on Zend Framework’s Zend_Db_Adapter), which further breaks down to two types of Models.

  • First is the “simple” i.e. Regular Models which is nothing but flat table or our regular table structure.

  • Second Model is EAV (Entity Attribute Value), which is quite complicated and expensive to query.

 All Magento Models interacting with database are inherited from Mage_Core_Model_Abstract class, which is further inherited from Varien_Object.

Difference between two Models is,  Simple Model is inherited from Mage_Core_Model_Resource_Db_Abstract class,
while EAV is inherited from Mage_Eav_Model_Entity_Abstract.


So, to end up this question, when you want to get some data in Magento, you call it like this: Mage::getModel('module/model')->load(1);

where 1 is the primary key id for some Regular/Simple table, while in EAV so many tables are joined to fetch just single row of data.

No comments:

Post a Comment