当我设计我的电子商务项目时,产品可以有多个属性(颜色、大小),我通常创建通用的Product实体,它保存关于产品的一般信息,ProductVariant实体包含属性,FK实体保存产品。
示例(这些只是简单的示例,通常将属性(或库存等)存储为FK):
**Product table**
Id Name SKU
1 T-Shirt sku_1
**ProductVariant**
Id ProductID Name (Optional) Color Size Stock Barcode
1 1 First black XL 50 bar_1
2 1 Second white XXL 35 bar_2
3 1 Third yellow S 60 bar_3但是有些开发人员创建这个功能的方式不同,:他们创建单个实体Product,它保存关于产品的所有信息(具有所有属性),并在显示产品时按sku分组,如下所示:
Id Name SKU Color Size Stock Barcode
1 T-Shirt sku_1 black XL 50 bar_1
2 T-Shirt sku_1 white XXL 35 bar_2
3 T-Shirt sku_1 yellow S 60 bar_3为什么第二种方法比变体更好?将所有值存储到单个表中可能有一些优点吗?
PS://我知道这是一个“低质量”的问题,还有太多关于产品属性关系的问题,但是我找不到这些设计的优缺点。
发布于 2015-06-16 16:49:26
我不会说这样更好。
不同的设计有不同的优点和缺点。
你应该选择最适合你需要的东西。
根据经验,查找表可以节省存储空间并允许更好的规范化,而平面表则允许更简单(但并非总是更快)。搜索查询。
需要存储的数据越多,就越有理由保持其规范化和索引正确。对于大量的数据,我将比您更进一步,并保留一个颜色表和一个大小表。
发布于 2015-06-16 18:59:10
SKU必须是独特的,所有的购物源都使用它,所以它必须在那里。我们在Magento与Magmi和许多可配置产品(ProductVariants)一起工作。每个SKU都有自己的产品信息和与ProductVariants的关系(如果适用的话)。
它是一个更干净、更方便的表,可以导入/导出,而导入和导出是您真正想要的电子商务。
从这个角度看,有两个女人是很有趣的,但是维持一个就足够了。
https://stackoverflow.com/questions/30866859
复制相似问题