重复订单

时间:2011-01-19 17:24:27

标签: sql database design-patterns

大家好我正在开展一个学校项目,而对于我的项目,我选择创建一个可以处理定期订单的电子商务系统。这是我最后的项目,我将于5月份与计算机科学的同事一起毕业。

请记住,这不是最终解决方案,它基本上是此数据库设计的起点。

有关业务流程的一些背景知识 - 客户将订购产品,并在结账时指定是一次性订单还是每周/每月订单 - 客户将指定一个接收订单的位置(此位置仅针对订单)
- 如果订单的价值> 25.00然后被接受否则被拒绝 - 这将分别填充orders_test和order_products_test表

  • 后端人员将根据这两个表生成当天交付的报告。
  • 他们将能够将其打印出来并生成一个列表,列出哪些项目可以到达哪个位置。 基于以下标准。
  • date_of_next_scheduled_delivery =当前日期
  • remaining_deliveries> 0
  • 一旦他们对交货清单感到满意,他们将按“处理交货”按钮。
  • 这将调整order_products_test表,如下所示
  • 从remaining_deliveries减去1
  • 将当前日期插入date_of_last_delivery_processed
  • 根据delivery_frequency(即一次,每周,每月),它将更改date_of_next_scheduled_delivery
  • order_products_test表中的状态值可以是活动的,保留的,也可以是取消的,已过期的

如果我正确地接近这一点,或者我应该抓住这种方法并重新开始,我只想提出一些意见。

1 个答案:

答案 0 :(得分:0)

一些想法,虽然不一定完整(你的问题有很多,但希望这些要点有帮助):

  • 我认为您不需要跟踪剩余的交付情况。您只有2个选项 - 一次性订单或定期订单。在这两种情况下,计算剩余交货都没有意义。它永远不会被利用。

  • 在跟踪下一个交货日期方面,您可以跟踪订单的当天。如果它是经常性的 - 每月或每周,无论如何 - 一切都可以从第一个日期算起。大多数数据库系统(MySQL,SQL Server,Oracle等)都支持足够的日期计算灵活性,因此您可以动态计算,而不是维护这样一个已知的计划。

  • 如果交货地点仅限于订单,我认为没有必要为它创建一个单独的表 - 它在功能上依赖于订单,您应该将它与订单保持在同一个表中。对于大多数电子商务系统而言,情况并非如此,因为他们倾向于将交付地点列表与帐户相关联,当您多次订购时,它们会提示您(例如,亚马逊)。

  • 考虑到上述情况,我打赌你可以在上面的4个表中找到2个 - 账户和订单。但同样,如果交付地点与账户相关联,我的确会打破这一点。 (但您的上述问题并不表明这一点)

  • 请勿使用“_test”后缀命名您的表格 - 这会令人困惑。