Magento 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'
लेकिन Magento 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
केवल ईई में है। यदि आप ताजा Magento CE स्थापित करते हैं, तो आप वह नहीं देखेंगे।