2011-01-19 68 views
1

大家好我正在开展一个学校项目,对于我的项目,我选择创建一个可以处理重复订单的电子商务系统。这是为了我的最后一个项目,我将在五月与计算机科学的同事一起毕业。经常性订单

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

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

  • 人都会有对交付基于这两个表的一天生成报告。
  • 他们将能够打印出来,它会生成什么项目到什么位置的列表。 根据以下标准。
  • date_of_next_scheduled_delivery =当前日期
  • remaining_deliveries> 0
  • 一旦他们满意的递送列表,他们将按下“过程交货”按钮。
  • 从remaining_deliveries如下
  • 减去1这将调整order_products_test表
  • 插入当前日期为date_of_last_delivery_processed
  • 基于DELIVERY_FREQUENCY(即一次,每周,每月),它将改变date_of_next_scheduled_delivery
  • 状态值在order_products_test表中可以是主动,保持或取消,已过期

我只是想一些意见,如果我是在做g正确或者如果我应该抓住这个方法并重新开始。

回答

0

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

  • 我不认为你需要跟踪剩余交付。您只有2个选项 - 一次性订单或经常性订单。在这两种情况下,计算剩余交货都没有意义。它从来没有杠杆。

  • 在跟踪下一个交货日期方面,您可以跟踪订单的当天。如果它反复出现 - 每月或每周,不管 - 从第一次约会开始,所有事情都可以计算出来。大多数数据库系统(MySQL,SQL Server,Oracle等)都支持绰绰有余的日期计算灵活性,以便您可以即时计算这一点,而不是维护这种已知的计划。

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

  • 鉴于上述情况,我敢打赌你可以放弃上面4张表中的2张 - 账户和订单。但是,如果交付地点与账户相关联,我确实会将其解决。 (但你的问题上面没有提示)

  • 不要用“_test”后缀命名你的表 - 这很容易混淆。