ম্যাজেন্টো 2:% _entity টেবিলগুলিতে সারি_আইডি এবং সত্তা_আইডের মধ্যে পার্থক্য কী?


17

ম্যাজেন্টো 1-তে, row_idসত্তার টেবিলগুলিতে কোনও কলাম কল করা হয়নি , আপনার সবেমাত্র এইটি ছিল entity_id:

CREATE TABLE `catalog_category_entity` (
  `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID',
  `entity_type_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Entity Type ID',
  `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attriute Set ID',
  `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Parent Category ID',
  `created_at` timestamp NULL DEFAULT NULL COMMENT 'Creation Time',
  `updated_at` timestamp NULL DEFAULT NULL COMMENT 'Update Time',
  `path` varchar(255) NOT NULL COMMENT 'Tree Path',
  `position` int(11) NOT NULL COMMENT 'Position',
  `level` int(11) NOT NULL DEFAULT '0' COMMENT 'Tree Level',
  `children_count` int(11) NOT NULL COMMENT 'Child Count',
  PRIMARY KEY (`entity_id`),
  KEY `IDX_CATALOG_CATEGORY_ENTITY_LEVEL` (`level`),
  KEY `IDX_CATALOG_CATEGORY_ENTITY_PATH_ENTITY_ID` (`path`,`entity_id`)
) ENGINE=InnoDB AUTO_INCREMENT=943 DEFAULT CHARSET=utf8 COMMENT='Catalog Category Table'

তবে ম্যাজেন্টো 2 একটি ধারণা প্রবর্তন করেছে row_idযা কোনও সত্তার প্রাথমিক কী হয়ে ওঠে, মন্তব্যটির সংস্করণটির সাথে এটির কিছু যোগসূত্র রয়েছে বলে মনে হয়:

CREATE TABLE `catalog_category_entity` (
  `row_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Version Id',
  `entity_id` int(10) unsigned NOT NULL COMMENT 'Entity Id',
  `created_in` bigint(20) unsigned NOT NULL COMMENT 'Update Id',
  `updated_in` bigint(20) unsigned NOT NULL COMMENT 'Next Update Id',
  `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attriute Set ID',
  `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Parent Category ID',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Creation Time',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update Time',
  `path` varchar(255) NOT NULL COMMENT 'Tree Path',
  `position` int(11) NOT NULL COMMENT 'Position',
  `level` int(11) NOT NULL DEFAULT '0' COMMENT 'Tree Level',
  `children_count` int(11) NOT NULL COMMENT 'Child Count',
  PRIMARY KEY (`row_id`),
  KEY `CATALOG_CATEGORY_ENTITY_LEVEL` (`level`),
  KEY `CATALOG_CATEGORY_ENTITY_CREATED_IN` (`created_in`),
  KEY `CATALOG_CATEGORY_ENTITY_UPDATED_IN` (`updated_in`),
  KEY `CAT_CTGR_ENTT_ENTT_ID_SEQUENCE_CAT_CTGR_SEQUENCE_VAL` (`entity_id`),
  CONSTRAINT `CAT_CTGR_ENTT_ENTT_ID_SEQUENCE_CAT_CTGR_SEQUENCE_VAL` FOREIGN KEY (`entity_id`) REFERENCES `sequence_catalog_category` (`sequence_value`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=956 DEFAULT CHARSET=utf8 COMMENT='Catalog Category Table'

ইভা ক্ষেত্রগুলিতে যোগ দিতে চাইলে এটি আমাকে কিছুটা অনিশ্চয়তায় ডেকে আনছে কারণ এখন প্রকারগুলি এর row_idপরিবর্তে উল্লিখিত হয় entity_id:

CREATE TABLE `catalog_category_entity_varchar` (
  `value_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Value ID',
  `attribute_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attribute ID',
  `store_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Store ID',
  `row_id` int(10) unsigned NOT NULL COMMENT 'Version Id',
  `value` varchar(255) DEFAULT NULL COMMENT 'Value',
  PRIMARY KEY (`value_id`),
  UNIQUE KEY `CATALOG_CATEGORY_ENTITY_VARCHAR_ENTITY_ID_ATTRIBUTE_ID_STORE_ID` (`row_id`,`attribute_id`,`store_id`),
  KEY `CATALOG_CATEGORY_ENTITY_VARCHAR_ENTITY_ID` (`row_id`),
  KEY `CATALOG_CATEGORY_ENTITY_VARCHAR_ATTRIBUTE_ID` (`attribute_id`),
  KEY `CATALOG_CATEGORY_ENTITY_VARCHAR_STORE_ID` (`store_id`),
  CONSTRAINT `CATALOG_CATEGORY_ENTITY_VARCHAR_STORE_ID_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON DELETE CASCADE,
  CONSTRAINT `CAT_CTGR_ENTT_VCHR_ATTR_ID_EAV_ATTR_ATTR_ID` FOREIGN KEY (`attribute_id`) REFERENCES `eav_attribute` (`attribute_id`) ON DELETE CASCADE,
  CONSTRAINT `CAT_CTGR_ENTT_VCHR_ROW_ID_CAT_CTGR_ENTT_ROW_ID` FOREIGN KEY (`row_id`) REFERENCES `catalog_category_entity` (`row_id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=266383 DEFAULT CHARSET=utf8 COMMENT='Catalog Category Varchar Attribute Backend Table'

সত্তা টেবিলে বর্তমানে row_idএবং entity_idএকই আছেন:

select row_id, entity_id from catalog_category_entity limit 3;        
+--------+-----------+
| row_id | entity_id |
+--------+-----------+
|      1 |         1 |
|      2 |         2 |
|      3 |         3 |
+--------+-----------+
3 rows in set (0.00 sec)

আমি পরিস্থিতি কোথায় row_idপরিবর্তন হবে এবং এর ম্যাজেন্টো সিস্টেমে কী প্রভাব ফেলবে তা আমি নিশ্চিত নই , আমি এই বৈশিষ্ট্যটিতে নথিপত্র চেয়েছি কিন্তু কোনও খুঁজে পাচ্ছি না।

আমি নিম্নলিখিত জানতে চাই:

  • একই সত্তা একাধিক row_idগুলি থাকতে পারে?
    • যদি তা হয় কিভাবে সক্রিয় সত্তা সংজ্ঞায়িত করা হয়?
    • এগুলি আপডেট করার জন্য ম্যাজেন্টো কী পদ্ধতি ব্যবহার করে তা নয়।
  • এই বৈশিষ্ট্যের মূল ব্যবহার কী এবং কোনও ডকুমেন্টেশন আছে?

3
আমি আপনি আপনার নিজের প্রশ্নের উত্তর মনে। এক সত্তায় অ্যান্টি_আইডের জন্য একই মান এবং সারি_আইডির জন্য আলাদা মান সহ একাধিক সারি থাকতে পারে। কোনও সত্তার 'সংস্করণ' এর উপর নির্ভর করে একটি পৃথক সারি_আইডি নির্বাচন করা হবে। সুতরাং প্রতিটি সংস্করণটির নিজস্ব সারি_আইড থাকবে।
ভিনসেন্ট হর্নিক্স

4
আমি মনে করি row_idএটি কেবল EE- এ রয়েছে। আপনি যদি তাজা ম্যাজেন্টো সিই ইনস্টল করেন তবে আপনি এটি দেখতে পাবেন না।
বুনিয়ামিন ইনান

উত্তর:


5

আমি এটির মধ্যে যা পেয়েছি তা থেকে, row_idসারিটির জন্য সনাক্তকারী, তবে entity_idআসল সত্তা।

এমন পরিস্থিতি রয়েছে যেখানে একটি নির্ধারিত সময়ের জন্য একটি তফসিল আপডেট চালানো সেট করা হয় এবং এই ক্ষেত্রে তার বৈকল্পিক eav_attribute(গুলি) এর সাথে সংযুক্ত করার জন্য একটি সম্পূর্ণ নতুন সারি তৈরি করা হয় এবং entity_idনতুন জারি করার সময় এটি একই রক্ষণ করতে পারে row_idতারপরে row_idপরিবর্তনটি পরিবর্তিত হয় নতুন অস্থায়ী সত্তা এবং তারপরে শিডিউলটি শেষ হয়ে গেলে মূলটিতে ফিরে আসুন।

তারা ব্যবহার করতে পারে এমন অন্যান্য ব্যবহারের ক্ষেত্রেও এটি থাকতে পারে, এটি আমি দেখেছি এবং এটি কীভাবে ব্যবহার করা যায় তা আলোকিত করে।


1

entity_idMagento 2 ই ই শুধুমাত্র সংস্করণ ব্যবহার করা হয়। এটি catalog_category_entityনির্দেশক হিসাবে সংজ্ঞায়িত সূচক হিসাবে ব্যবহৃত হয় sequence_catalog_category

সিকোয়েন্স টেবিলগুলি, সাধারণভাবে, ডাটাবেস বিভাজন বৈশিষ্ট্যের জন্য ব্যবহৃত হয়।


-1

আমি বলব যে উদ্দেশ্যটি ম্যাজেন্টো 1 এর সাথে সামঞ্জস্য রাখা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.