日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Magento 2数据库EAV模型结构

發布時間:2023/12/31 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Magento 2数据库EAV模型结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  ?EAV模型是一種數據模型?,用于描述實體的數量預計會很大,但事實上,實體中要使用的屬性數量并不多。 Magento 2這么設計是為了靈活性,在不影響主干的基礎上,任意新增刪除屬性。 EAV模型(E ->實體,A -> 屬性,V -> 值)簡單理解就是分表,不需要把所有字段都放在主表里,而是按類型存放在不同的副表上。 對于字段少的項目來說 EAV其實沒啥用 效率不高。

  按照常規做法,比如一個產品的所有相關屬性都會存放在產品表里,增刪改查的都是這一個表。 EAV模式 就是把這些屬性按照類型獨立分開存放到不同表里的。 所有查詢屬性值的時候會比較麻煩 要聯表查詢。 不過M2里不用擔心,他提供了非常簡單的方法,直接get屬性名就得到值了,不需要你手動去寫sql查表。

  實體存儲的是數據類型的信息。 就Magento而言,就是Customer,Category,Product等。 屬性是每個實體的單獨屬性(比如name,weight,email)。 值是實體某個屬性的值。

  比如,產品有個屬性叫產地(Manufacture),它的值為中國。 那么產品就是實體,Manufacture就是屬性,中國就是值。

  ?EAV模型帶來的好處?如下:

  • 靈活的多功能數據結構(可以在不更改數據庫模式的情況下更改屬性數量)。
  • 為給定實體添加新屬性時,我們有可能在其他實體中使用它
  • 快速實施。
  •   ?EAV實體的數據庫模式:

    • eav_entity - (E)實體表。
    • eav_entity_attribute(A)屬性表
    • eav_entity_ {type}(V) - 值表。{type} - datetime,decimals,int,text和varchar。
    • eav_attribute 里面是所有實體的屬性

      帶有eav_ *表格的圖表:

    ?magento的eav模型

      Magento 2中有哪些EAV實體? 實體列表可以在eav_entity_type表中找到:

    • customer
    • customer_address
    • catalog_category
    • catalog_product
    • order
    • invoice
    • creditmemo
    • shipment

      Magento 2中有哪些EAV屬性類型:

    • eav_entity_int
    • eav_entity_varchar
    • eav_entity_text
    • eav_entity_decimal
    • eav_entity_datetime

      這5種屬性類型就相當于字段類型。

    • int 對應mysql字段的int類型
    • varchar 對應mysql字段的varchar類型
    • text 對應mysql字段的text類型
    • decimal 對應mysql字段的decimal類型
    • datetime對應mysql字段的datetime類型

      比如產品的name 是varchar類型。 他的值存在catalog_product_entity_varchar表里。 知道了這個原理,你就很輕松的知道屬性和值在哪個表里。 聰明的你會覺得,把屬性分散存在不同的表里,如果要查詢全部屬性的話,要聯十幾張表,是不是太耗資源了? 這點,M2官方也考慮到了,以產品為例,他提供了catalog_product_flat表,也就是說后臺開啟flat模式后,查產品數據就直接讀取這個表,他把屬性都存放在這個表里了。 catalog_product_flat是按store id來分的。如果你有多網店的話。 比如:

    catalog_product_flat_1 //代表store id為1的所有產品數據 catalog_product_flat_2 代表store id為2的所有產品數據

      

    總結

    以上是生活随笔為你收集整理的Magento 2数据库EAV模型结构的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。