【问题标题】:How to avoid paying for the same item multiple times如何避免多次为同一物品付款
【发布时间】:2015-05-24 12:19:34
【问题描述】:

我正在尝试绘制电子商务的数据库设计,以及订单平台的履行。该公司目前有一个配送中心来完成订单。但他们希望将其扩展到将其商店用于履行过程的一部分。我已经设计了一个“互联网销售”和“商店销售”的数据库,但我被困在互联网订单的履行上,不知道你们是否可以帮助我。

场景:当客户下订单时,配送中心没有库存要运送给客户的商品,需要从其中一家商店取货.然后将该项目发送给客户。

但问题是我不能只从商店拿一件商品,然后将其发送给客户,因为该商品尚未在商店出售,它的(商店)库存数据库不可用要被更新。如果我将物品通过自动取款机,该物品将从库存表中删除,但同一物品有两次交易 - 一次来自互联网,另一次来自商店。

我想我的问题是,我该如何处理互联网订单,并避免在同一商品上进行两次交易?

非常感谢任何有关此问题的有用指示。

更新:这是我在 Jo Douglass 的建议下到目前为止所做的事情,

Database Design Here

抱歉,我无法发布图片,因为我没有足够的积分。并且请注意上面的数据库设计是不完整的

【问题讨论】:

  • 我已经回答了,但是相当高级;如果没有看到您现有的模型,很难给出更详细的答案。如果您在阅读我的答案后仍然不确定如何解决这个问题,请评论我的答案并告诉我。如果您可以编辑您的问题以显示现有模型的相关部分,它将有助于为我的答案或可能发布的任何其他答案添加更多细节。谢谢!
  • 好的 - 在我对设计进行深入研究之前立即提出问题。你为什么用事实和维度来创造这个?维度数据库用于数据集市或数据仓库——即商业智能等下游报告和分析功能。用于事务系统的数据库通常更加规范化,并且没有事实或维度的概念。
  • 由于遗留数据库,我已经这样做了。我将需要从旧数据库中提取数据,并保留历史数据以进行报告。这是业务需求之一。
  • 您是否也将其用作系统的主数据库?在您最初的问题中,您似乎在讨论实时系统的数据库,而不是报告数据库。
  • 不,这不会用作主数据库。这是配送中心和商店的订单履行流程。他们将查看这些数据,然后打印标签并将包裹发送给相应的客户。对于任何混淆,我很抱歉,我不是故意的。

标签: mysql database database-design


【解决方案1】:

听起来您有一个 Transaction 实体,并且您已经或正在计划使用一些逻辑来确保在为某个项目创建其中一个时,您的系统知道会耗尽相关位置的库存水平(无论是配送中心的商店)。

您可以使用一个实体来显示物品从一个位置(商店)转移到另一个位置(配送中心),然后创建一些与您现有逻辑非常相似的逻辑 - 在开始时耗尽库存水平位置,并增加目的地位置的库存水平。然后,当您执行流程的最后一部分(将项目发送给客户)时,您将有一个交易显示并耗尽配送中心的库存水平。根据模型的其余部分,您可以通过更改 Transaction 实体或完全创建一个新实体来执行此操作。

或者,如果这不能很好地模拟业务中正在发生的事情,那么也许您只需要修改您的逻辑(可能还有您的模型 - 如果没有看到您现有的模型就很难判断)。您可能不仅仅需要能够通过使用收银机来创建商店交易,还需要能够创建通过 Internet 启动的商店交易。

【讨论】:

  • ‎谢谢。我已根据您的建议修改了数据库设计,并提供了图片链接。如果可以的话,请给我你的意见。再次感谢。
【解决方案2】:

一个想法是继续将商品视为从商店出售(通过在线交易),并将销售价格记入商店的帐户。分销商可能已经从商店收到批发价,所以它很高兴,商店获得了销售信用(至少有一部分运费),所以它很高兴,您不必创建新的交易代码或对现有数据库的任何其他修改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2018-05-30
    • 1970-01-01
    • 2012-02-19
    • 2015-05-31
    相关资源
    最近更新 更多