【问题标题】:Basics of Shopping Store and its schema [closed]购物商店及其架构的基础知识[关闭]
【发布时间】:2014-12-06 16:09:03
【问题描述】:

我正计划制作一个通用的购物商店网站,例如较小版本的 alibaba.com,不同的企业可以使用它在他们自己的购物商店版本中列出他们的产品。

在开始项目之前,我想确定我将要做什么。我想在这里问的一件事是:


1) 购物商店是否跟踪所有库存,包括产品的原始成本和产品的售价,还是只跟踪后一个? 如果它同时跟踪两者,那么如果特定产品在不同时间以不同的费率进入库存,例如 100 件产品 1 的价格为 100 美元,价格为 150 美元,日期 1 和日期 2 产品 1这次再次添加到库存中,成本为 120 美元,与以前一样定价为 150 美元。在这种情况下,我将如何将该信息存储在数据库中并计算利润和销货成本 (COGS)。我稍微了解 FIFO LIFO 库存管理,但我不确定它是否会成为购物商店的一部分,或者购物商店是否有责任跟踪销售商品的原始成本与利润。如果是,那么数据库的架构应该是什么样的才能满足这些要求。


2)在典型的购物商店中,单个产品具有不同的属性,并且购物商店知道具有特定属性的产品的当前数量。例如,productId=1 的 T 恤可能有两种不同的颜色,库存分别有 10 件蓝色 T 恤和 5 件黑色 T 恤,productId=1 和 attributeId=1 和 2。我将如何跟踪具有不同属性的同一产品的库存。我的意思是数据库中只有一个 Product 表,该模式将如何适应库存知道具有相同 productId 的不同属性产品的数量的这些要求。


在此处发布问题之前,我进行了很多搜索。我遇到了一些购物商店的数据库模式,但我不确定他们如何管理库存,记住我的上述两点。请看一下并告诉我路线图是什么样的。 最后,我确实想建立自己的购物商店,而不是仅仅出于学习目的以及其他一些原因而使用预建的购物商店。我打算将 ASP.Net MVC 与 sqlserver 一起使用。

请查看我在谷歌上找到的购物商店模式的附件图片。

如果我使用图片中显示的稍微小一点的架构版本,我将如何跟踪和维护库存。他们在哪里指定产品的数量,因为产品表没有它。另外,我将如何保持具有不同属性的相同产品的数量、成本和价格。

谢谢。

【问题讨论】:

    标签: database e-commerce shopping-cart inventory-management


    【解决方案1】:

    1) 库存始终反映当前价格。应该有一个购物车来保存正在进行的订单 - 以及一个单独的订单项目表,其中包含特定订单的项目。 order items 表中的价格不会更改,因为它与特定订单相关联。因此,您拥有当前定价的当前库存,并且您拥有订单记录和售出商品。

    与购物车中的价格相反,因为它们应该反映产品的当前定价,所以应该改变。产品的价格在他们完成交易时被冻结 - 而不是在他们将商品放入购物车时。

    以同样的方式,当有人将东西放入购物车时,库存不会减少 - 当交易完成并且商品实际售出时,库存会减少。

    2) 在更大的商业世界中,每个“可购买”产品都有一个唯一的 UPC 代码或 EAN 代码。商家可能有自己的 SKU 用于库存。并且电子商务系统可能对每个产品都有自己的ID。这样看 - 如果产品有单独的库存,则必须有单独的 ID 才能跟踪该库存。如果一件衬衫有 3 种尺寸和 2 种颜色 - 这相当于货架上的 6 种不同产品。

    即使衬衫只有一个网页 - 商家必须以某种方式知道每种特定尺寸和颜色的库存数量。因此对此的一种描述称为父产品 - 子产品。父产品是“衬衫”——描述、图片、页面、评论等。子产品是实际可购买的物品。亚马逊卖家中心对此有一些很好的描述。

    我的建议是创建您的系统,以便购物车无法控制价格或库存。有一个最新的产品数据库,您的电子商务系统会不断检查。您将产品 ID 存储在购物车中,然后在任何购物车刷新和结帐时 - 您将从产品表中获取价格并检查库存。与将价格从产品页面传递到您的购物车并且不再检查它相比。

    【讨论】:

    • 感谢您的详细回复。我得到第二点。但是,在我的第一点中,我的意思是别的。我的意思是,如果在某个时间点以 10 美元的价格添加了 x 数量的 Product1,并且在稍后的某个时间以 20 美元的价格添加了相同数量的 Product1,则由系统管理员而不是客户购买它,即所有者的 sotre 在不同的时间以不同的成本价格添加相同的库存项目,但销售价格相同,我将如何处理?
    • 这是一个很好的问题 - 也可以看看已建立的零售销售点软件。另一种看待它的方式——无论提供什么数据——真正想出 COGS 将在会计软件中完成。我确信有些系统可以运行报告,但对于大多数公司而言,这些数据仍会进入独立的会计软件,这是运行业务的最终决定。
    • 电商网站的“products”表是否应该有“availability”和“quantity”两列,这样当用户点击结账时,availability会减少,而当订单完成时,quantity会减少吗?还是应该只是“数量”?
    猜你喜欢
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2011-04-20
    • 2011-12-04
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多