ম্যাজেন্টো 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
গুলি থাকতে পারে?- যদি তা হয় কিভাবে সক্রিয় সত্তা সংজ্ঞায়িত করা হয়?
- এগুলি আপডেট করার জন্য ম্যাজেন্টো কী পদ্ধতি ব্যবহার করে তা নয়।
এই বৈশিষ্ট্যের মূল ব্যবহার কী এবং কোনও ডকুমেন্টেশন আছে?
row_id
এটি কেবল EE- এ রয়েছে। আপনি যদি তাজা ম্যাজেন্টো সিই ইনস্টল করেন তবে আপনি এটি দেখতে পাবেন না।