ruby-on-rails - 我应该如何为产品图像建模?它们应该属于 SKU 还是产品?
问题描述
我正在 Rails 中构建一个自定义电子商务网站。
在我的数据模型products
中有很多SKU
s,SKU
s有两个属性:大小和颜色。
我想知道如何将产品图片添加到此方案中。
一件很自然的事情是通过关系将它们放在产品上has_many
。但如果我这样做,可能很难解释同一产品上具有不同颜色的 SKU 具有不同图像的事实。
另一方面,如果我以某种has_many
方式将产品图像添加到 SKU,那么这将解决颜色问题,但会引发一个新问题:在一种颜色中,所有 SKU 都具有相同的产品图像,而不管它们的大小。
即,产品尺寸不会影响产品的图像,但会影响产品颜色。
鉴于向产品和 SKU 添加图像存在问题,也许我需要创建一个新模型来捕捉UserFacingProductEntity
.
不过这个问题应该早就解决了。
解决方案
我打算在评论中这样做,但它不适合。
恕我直言,它是如何sku
定义的。这是一个常见的“问题”,特别是如果您正在努力支持现有的数据集(通常是多年的制作,这意味着无法更改)。
TLDR;a 的每个变体都是Product
一个,无论如何sku
,它将被履行/制造/分发/跟踪/报告。
“深度”变化如何,颜色和大小skus
?vs 尺寸只是颜色变化的“方面” skus
,可能由企业的产品线决定。
实际示例:如果我订购了红色的 ITEM A,尺寸 L:
- 我如何将其传达给最终用户(显示)和履行操作(后台)?
- 挑选/包装 SKU 123(红色),然后找到尺寸为 L 的“箱子”?
- 还有存货吗?123L?
- 我如何管理 ITEM A、RED、L 码库存、定价等(相对于 XL、M、S 码等)?
或者:
- 如果 sku 123专门指ITEM A、RED、Large,会不会“更好”?自行管理(制造、库存、定价等)
此时,图像(如上所述,仅需要考虑一个方面)存在于color
变化sku
级别和/或size
是否足以成为产品类型因素。
嗯...
推荐阅读
- python-3.x - 转换为 str 时如何解决 UnicodeEncodeError
- c++ - 为什么 m_ptr = nullptr 应该在使用 C++ 11 中的移动构造函数移动数据(窃取数据)之后完成?
- javascript - 如何将特殊的 JSON 格式解析为 JavaScript 对象?
- android - 将数据从活动传递到片段 - 如何?
- testing - 使期望在意外输出上抛出错误
- pyqt5 - PyQt5 将数据附加到 QComboBox 项
- scala - 变异隐式“上下文”参数
- angular - 如何在角度的ngx图表上设置工具提示
- vba - 已解决:无法弄清楚如何让“.EntireRow.Delete”删除另一个工作表中的单元格
- python-3.x - 使用 DenseVariational 层的 Tensorflow-Probability 网络中的参数数量