我看着平台,看到了这种奇特的行为。对于我的一些属性,如“语言”,有两列(语言和语言类),而对于其他“年龄”,则没有存储此类值。
我在属性字段中找不到任何描述这个的设置,似乎没有任何模式。
同样在语言存储的地方,语言是int(11),langauge_value是varchar(256),而在年龄,它是varchar(256),但实际上只存储一个数字。
更新: 我认为这个问题没有被理解。我看到一些属性显示为varchar(255),而一些属性显示为属性(int(11))和attribute_value(varchar(255)
找到答案: 对于简单的下拉列表,attribute_value也会添加到平面table.values中。 对于Multiselect,值不会添加到Flat表中。
答案 0 :(得分:1)
模式非常简单,当您创建新属性时,您可以选择是否将其用于搜索/分层导航。如果是 - 索引器会将此属性的新列添加到平面表。
答案 1 :(得分:1)
在Can I add other attributes to magento's flat product catalog table主题下回答了什么?在向Flat Product Catalog表中添加属性时,不要太高兴。它有一个由MySQL限制定义的行限制。
答案 2 :(得分:0)
我相信这完全取决于变量的范围,以及它是否可以在网站的前端(使用平面表)上使用。
如果你设置一个属性显示在网站的前端(或者我相信如果它的范围设置为存储视图,但不引用我的话)它将被放入平面表。
我通常会看到的一种方法是,如果我创建属性时需要重新索引平面产品索引,那么它就会进入那里。