我想知道你们中是否有人可以帮助我在Solr中存储产品属性.我遇到的问题是产品属性因产品类别而异.从我到目前为止所理解的,我必须列出我的架构中的字段.属性的数量相当大且不断变化 - 你们有什么建议?
例如,衬衫类别中的产品可能具有尺寸属性,但房地产类别中的产品可能具有卧室属性.
(我目前正计划不断将MySQL数据导入Solr并主要使用Solr进行分面搜索)
这是一个具体的例子:
Wordpress将用户信息(meta)存储在名为wp_usermeta的表中,您可以在其中获取meta_key字段(例如:first_name)和meta_value(John)
但是,仅在50个左右的用户之后,该表已经包含了大约1219条记录.
所以,我的问题是:在大规模,性能方面,最好是将一个包含所有meta作为字段的表,或者像WordPress这样的表将所有元作为一行?
在两种情况下都正确设置了索引.几乎没有必要添加新的元素.请记住,像wp_usermeta这样的表必须使用text/longtext字段类型(大脚印)才能容纳可输入的任何类型的数据.
我的假设是,当您不知道用户可能需要什么时,WordPress方法才有用.除此以外:
我可能会错过一点.我不是数据库工程师,我只知道SQL的基础知识.
mysql sql database-design scalability entity-attribute-value
有没有人有任何建议在数据库中创建元表?这些表将用于使用数据库模拟数据库中的表.这适用于您希望轻松地将结构(更多字段)动态添加到数据库中而无需担心所涉及的所有技术问题.我看到的唯一例子看起来像这样:
表:MetaTables字段:tableName,tableDescription
表:MetaFields字段:tableName,fieldName,fieldDesc,fieldDesc
表:MetaCodes字段:tableName,fieldName,codeName,codeValue等...
我以前从来没有真正使用过这样的东西,并且想知道是否有任何"陷阱"需要注意.
这样的事情是否可以合理维护,或者你会建议反对吗?
以下数据库表设计是否有任何名称:
基本上我们有代表键/值对的通用列.
1 | 名字| 山姆| 姓氏| 史密斯| NULL | NULL | ...
在我的应用程序中,我有许多只有一行的表,我想将它们合并到一个通用表中,该表具有X个列,每行代表单个表行.
提前致谢.
其他人如何使用关系建模工具将逻辑模型或第三范式中的模型映射到使用EAV的数据库?
oracle database-design uml entity-relationship entity-attribute-value
我可以在magento 1.5中为产品分配多个属性集吗?如果不是如何处理这个问题?
我想为所有产品添加新属性.我用安装脚本槽完成了它
$installer = $this;
$installer->startSetup();
$this->addAttribute('catalog_product','test2',array(
'label' => 'test2',
'type' => 'varchar',
'visible' => true,
'required' => false,
'required' => 0
));
Run Code Online (Sandbox Code Playgroud)
但是如何通过添加此属性的值
$entityTypeId = $installer->getEntityTypeId('catalog_product');
$attributeSetId = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$installer->addAttributeGroup($entityTypeId, 'Default', 'test2', 0);
$installer->endSetup();
Run Code Online (Sandbox Code Playgroud) CREATE TABLE Attributes (
id VARCHAR(40),
type VARCHAR(16),
data VARCHAR(2048),
PRIMARY KEY(id,type)
);
这是我试图运行的查询的一般格式.一般的想法是'对象'具有唯一的ID,然后具有像javascript对象的键/值对.
SELECT a1.id, a1.data, a2.data, a3.data, a4.data, a6.data
FROM Attributes a1, Attributes a2, Attributes a3, Attributes a4, Attributes a5
LEFT JOIN Attributes a6 ON (a6.id=a5.id AND a6.type = 'Foreign Id')
WHERE a1.id=a2.id
AND a1.id=a3.id
AND a1.id=a4.id
AND a1.id=a5.id
AND a1.type = 'First Name'
AND a2.type = 'Middle Name'
AND a3.type = 'Last Name'
AND a4.type = 'Timestamp'
AND a5.type = 'Count'
AND a5.data = 'MY_ID'
在此查询中'Foreign …
我为Magento 1.8开发了一个自定义模块,它可以正常工作,我现在正在将其改装为Magento 1.4.
在catalog_product_attribute/edit选项卡中,我使用观察者向表单添加字段,以便人们可以在创建或更新属性时从其他选项中进行选择.在我的安装脚本中,列is_grouped_product_filter被添加到catalog_eav_attribute表中,它确实存在.
正如我在1.8中所做的那样,在1.4中我去Mage_Adminhtml_Catalog_Product_AttributeController了saveAction()以确保我的新字段被包含在数据数组中以保存到数据库中,事实上确实如此.
它只是不会将值保存到1.4中的自定义列.但是,在我正在处理的1.4到1.8版本之间,看起来saveAction()是相同的.
我还尝试在保存操作中手动添加我的数据,看看它是否做了什么,但事实并非如此.我使用以下方法手动将数据添加到数据阵列:
$data['is_grouped_product_filter'] = 1;
Run Code Online (Sandbox Code Playgroud)
我是否在1.4中缺少一些额外的步骤以允许我将值保存到数据库中?
我正在寻找一种方向来反向旋转数据帧.据我所知,pandas提供了一个pivot或pivot_table方法来将EAV df转换为"普通"df.但是,还有一种方法可以做反过来吗?
所以给定数据帧:
$df
userid A B C
0 1 1 0
1 1 3 1
2 1 5 0
我想将其转换为(EAV模型):
$df
E A V
0 A 1
0 B 1
0 C 0
1 A 1
1 B 3
1 C 1
2 A 1
2 B 5
2 C 0
最有效的方法是什么?
magento ×3
mysql ×3
attributes ×2
pivot-table ×2
sql ×2
database ×1
module ×1
oracle ×1
pandas ×1
php ×1
python ×1
scalability ×1
schema ×1
solr ×1
uml ×1