我非常努力地理解cataloginventory_stock 的关系——我知道stock_item 和stock_status 表都会在修改库存项目时更新,但我无法确定是否真的需要stock_status_idx 表。
据我所知,stock_status_idx 表包含与 stock_status 表相同的信息。它只是一个临时表吗?如果我手动更新 stock_item 和 stock_status 表,但没有更新 stock_status_idx 表,我没有看到任何错误库存状态的问题。
事情是......我认为它以某种方式用于缓存/索引器。但是,即使我没有修改 stock_status_idx 表,库存状态在后端和前端都显示得很好。
那么,stock_status_idx 表的意义何在?
非常感谢你的帮助。
最佳答案
我想知道同样的问题并决定挖掘,因为我在任何地方都找不到答案。
似乎 _tmp 和 _idx 被用作索引数据的临时持有者。
例如,您可以查看 reindexAll()
app/code/core/Mage/Catalog/Model/Resource/Category/Indexer/Product.php
中的方法你会明白它在生成索引时使用 _idx 表来临时存储它的数据:
$this->useIdxTable(true);
...
$idxTable = $this->getIdxTable();
....
$query = $select->insertFromSelect($idxTable, ...
在同样的方法结束时,你会注意到一个不错的
$this->syncData()
方法调用。你可能已经猜到了!该函数位于 app/code/core/Mage/Index/Model/Resource/Abstract.php
并且正在这样做,将 _idx 与 main 同步:$this->_getWriteAdapter()->delete($this->getMainTable());
$this->insertFromTable($this->getIdxTable(), $this->getMainTable(), false);
$this->commit();
祝你好运!
关于magento - cataloginventory_stock_status_idx 表有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10063434/