【问题标题】:how to Database Design for product that have more price [closed]如何为价格更高的产品进行数据库设计[关闭]
【发布时间】:2019-04-02 00:52:43
【问题描述】:

我的产品具有更多属性(例如颜色、尺寸、材料),每个属性都有值(例如颜色有 4 个值或材料只有 1 个值),那么产品的每个属性值都有一个价格(例如白色的产品有一个价格,红色的产品有一个价格)。

所以我想要 Laravel 5.5 中的设计数据库,我对此感到困惑。

【问题讨论】:

  • 我们旨在解决孤立的问题。理想情况下,我们希望修复您损坏的编码尝试。向我们展示您迄今为止所做的研究以及您设法生成的代码。
  • 嗨。请:请参阅How to Ask 并点击谷歌搜索“stackexchange 作业”。给你一个minimal reproducible example 你可以写什么代码。问一个关于你被困在哪里的具体问题。查找并遵循有关信息建模和数据库设计的学术教科书。数十个(pdf 格式)在线免费。 stanford.edu 的数据库课程也是如此。

标签: php mysql laravel database-design entity-attribute-value


【解决方案1】:

您需要实现 EAV 概念

EAV : 实体属性值

你需要像这样定义数据库:

products (id, title, description) e.g. t-shirt
entities (id, title) e.g. color, size
values (id, entity_id, value) e.g. yellow, red, medium, large
entityvalues_to_products(id, product_id, entity_id, value_id) e.g. t-shirt have yellow color and could be size of large

entityvalues_to_products中添加价格属性,在改变尺寸或颜色值时添加jquery,它会比基本产品加/减价格。

喜欢

  • 基本产品:40 美元
  • 选择黄色:43 美元(加价 3 美元)
  • 选择大号:46 美元(再次添加 3 美元)

【讨论】:

  • 感谢您的回答。如果一个产品没有具有不同价格的属性并且只有具有一个价格的属性,那么我该如何保存该产品。因为在这个主题 entityvalues_to_products 表中没有采用。例如,我有具有颜色、分辨率、高度、cpu 类型和更多属性的手机,该手机只有一个价格。所以我有一些产品基于自身属性具有不同价格的产品,而某些产品具有仅具有一个价格且不具有基于自身属性的属性
  • 同意。所以基本上每个产品都有基本价格,默认情况下会显示。如果该产品包含一些基于属性的价格变化 10,它将被更新,否则不会 0 价格更新。
  • 好的,我也同意这个想法,但是你认为这个想法是解决这个问题的好方法
  • 嗯,是的,2008 年在 Magento 中实现了相同的想法,现在他们仍在使用。此外,许多其他电子商务应用程序使用相同的 EAV 模型。
  • 并且应该在产品表中添加价格..这是真的吗?
【解决方案2】:

一种可能的解决方案是使用Pivot Tables 将价格存储在产品与属性本身(例如颜色)之间的枢轴/关系上

【讨论】:

    猜你喜欢
    • 2015-12-24
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多