سؤال

مع العلم أني سؤال مماثل.سؤالي أكثر عمومية، وهو ما الذي سيحدث لكلا الاتصالين سواء قمت بالفعل بإنشاء عمود قاعدة بيانات أم لا.

يحرر

أنا أعرف addColumn() سيضيف عمود جدول حقيقي، ولكن عندما أتعمق في بعض الوحدات الأساسية، فإن بعضها يستدعي كليهما addColumn() و addAttribute() إلى نفس المجال.

ما الفرق بينهم؟

تحرير 2

لأن addAttribute() يبدو أن EAV مرتبط بي كثيرًا، وبعد إجراء بعض الأبحاث وجدت أيضًا بعض الأسماء المشابهة مثل addAttributeSet() و addAttributeSetNames().

كيف تختلف عن بعضها البعض؟

هل كانت مفيدة؟

المحلول

دعونا نأخذ الأمر خطوة بخطوة.

  • addColumn يضيف عمودًا إلى الجدول.
  • addAttribute يضيف سمة جديدة لكيانات EAV.لذلك سيتم إنشاء سجل جديد في eav_attribute طاولة.
  • الاستثناء:بالنسبة لوحدة المبيعات، addColumn و addAttribute افعل نفس الشيء.يقومون بإضافة عمود إلى الجدول.والسبب هو التوافق مع الإصدارات السابقة.قبل الإصدار 1.4، كانت كيانات المبيعات (الطلبات، الفواتير، الشحنات، الأصناف، ...) هي EAV لذا كان عليك استخدامها addAttribute.بدءًا من 1.4، تكون كيانات المبيعات مسطحة لذا يتعين عليك استخدامها addColumn.ولكن بالنسبة للتوافق مع الإصدارات السابقة، بدءًا من الإصدار 1.4، addAttribute هو مجرد غلاف ل addColumn.
  • addAttributeSet يستخدم لكيانات EAV ويفعل ما يقوله.يقوم بإنشاء مجموعة سمات جديدة لهذا الكيان.أعتقد أنه يتم استخدامه للمنتجات فقط، لأن جميع كيانات EAV الأخرى (الفئة والعميل وعنوان_العميل) تستخدم مجموعة سمات واحدة.
  • addAttributeSetNames - لم أجد أي حدوث لهذا في أي مكان في الكود الأساسي.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top