4

sales モジュールの config を確認すると、以下のように sales_entity セクションがあります。

<models>
<sales>
    <class>Mage_Sales_Model</class>
    <resourceModel>sales_resource</resourceModel>
</sales>
<sales_entity>
    <class>Mage_Sales_Model_Entity</class>
    <entities>
        <quote>

これらのクラスMage_Sales_Model_Entity_xxxextends はMage_Eav_Model_Entity_Abstract、販売/注文がEAVスタイルであるがフラットではないことを示しています。テーブル「eav_entity_type」には「注文」に関連する多くのレコードがあることもわかります。

しかし、悲しいことに、コードをEAV調べてみると、現在のコードベース (少なくとも v1.7) には最終的に配置されていません。誰でも明確にするのを助けることができますか? EAV販売用/注文用は廃止されましたか?

4

2 に答える 2

8

Magentoの最新バージョン(つまり、1.6と1.7、以前は言えません)では、販売エンティティの属性はEAV属性値テーブルに保存されなくなりました。Mage_Salesモジュールのリソースモデルは、販売エンティティをフラットテーブルに接続します。

Mage_Sales_Model_Abstractまた、基本の販売モデルクラスが拡張Mage_Core_Model_Abstractされ、基本の販売リソースモデルMage_Sales_Model_Resource_Abstractが拡張されていることもわかりますMage_Core_Model_Resource_Db_Abstract。どちらもEAVモデルでもEAVリソースモデルでもありません。

表にある属性エンティティのメタデータeav_entity_typeは、CatalogモジュールとCustomerモジュールのEAVエンティティに似ていますが、属性値ストレージシステムはEAVではありません。

おそらく、遭遇した構成は下位互換性のために残されています。

MagentoのEAVシステムの説明をまとめました。おもしろいと思うかもしれません:http ://www.divisionlab.com/solvingmagento/magento-eav-system/

于 2013-01-31T10:50:40.193 に答える