淺談Magento資料庫:EAV
在Magento的資料庫中,光資料表就有三百多張,應用於其中的資料結構就是EAV(Entity實體/ Attribute屬性/ Value值),今天讓我們來粗淺的談論一下EAV在Magento的應用及其優點吧。
甚麼是EAV?
EAV是一種源自於資料庫管理技術的關係模型,其中EAV的E就是Entity實體,每一個實體代表了在Magento系統中的物件,並且以獨立的ID儲存在資料庫中,例如:商品、訂單、客戶、目錄等,而A代表了Attribute屬性,屬性就是Magento系統中每個物件的性質,例如:商品有名稱、價格、數量等,而V就是Value值,就是屬性的值,而Magento就是透過這樣的資料模型來存取各種格式的資料。
Entity 實體
實體在Magento內部程式定義為Entity type,而內建的Entity type有下列八種,也能自己手動新增,而新增的Entity type會增加在eav_entity_type這張表內。
Attribute 屬性
上述提到每個實體有不同的屬性,所以每一個Attribute都會對應到Entity type,例如商品的名稱、價錢、數量等,抑或是客戶的姓名、電話、地址等,而所有的Attribute都會儲存在eav_attribute這張表中,以entity_type_id為1的客戶來說,其在eav_attribute這張表的區塊如下。
Value 值
而屬性擁有的不同的值,就會被儲存在資料表中,示意圖如下。
相比於其他的資料庫結構,EAV擁有更大的彈性來讓開發擴充套件,在不更動到核心資料庫結構的原則下,能更簡單快速的新增屬性及資料。
以上為這次的文章資訊分享,另外若想接收最新的文章資訊,請務必訂閱我們的電子報,以及追蹤我們的臉書粉絲團,才能收到第一手的最新資訊喔!
我要留言