【问题标题】:How to properly handle rental inventory via database如何通过数据库正确处理租赁库存
【发布时间】:2013-08-22 14:37:31
【问题描述】:

我正在构建一个租赁库存应用程序来处理租赁预订的跟踪。我想我可能想多了,但我一直在试图弄清楚库存调度部分的模型或模式。在附图中,我有一部电影有 4 个副本。在第一个副本中,仅计划发行; 5日,出3本; 6 日和 10 日,所有副本都已发布。现在,我想以一种可以查找日期或日期范围的方式设计数据库,以查看当天有多少可用库存。挑战在于,每个单独的租赁项目可能没有单独的 sku 或跟踪。因此,我不能将 Movie_1 视为具有 movie_1_a、movie_1_b、movie_1_c、movie_1_d。相反,我必须将其视为 Movie_1 有 4 份,而在 5 日,3 份已出,但我们不知道是哪些。

任何人都可以就如何编写架构提供任何建议。搜索可用性的示例查询是什么样的?

【问题讨论】:

    标签: database-design inventory-management


    【解决方案1】:

    这有两个方面(如果包括销售/交付,则为三个)方面。

    类似

    原件(StockId 等)

    CopySchedule(CopyId、StockID、DeliveryDate、NumberOfCopiesRequired、NumberOFCopiesAchieved、状态等)

    副本(CopyId、数量等)

    因此,当您将 CopyScheduleStatus 设置为 Done 时,您会将记录添加到 Copies。

    那么您预计的库存水平将从现在开始?到任何时候

    NumberInStock - NumberScheduledtoDeliver(现在和任何时候之间)+ NumberScheduledToCopy(现在和任何时候之间)

    不要试图在一个模型中满足您的所有需求。

    【讨论】:

    • 我想我了解您的设置。您是为计划复制的每一天都做一条记录,还是在 CopySchedule 下添加一个名为 DeliveryReturnDate 之类的列?
    • copyschedule 是您打算何时进行复制的时间表。如果您该日期不一定是副本可用的日期,那么计划完成日期将是必要的
    【解决方案2】:

    在您的电影表中,您应该有 movie_copies 字段,然后使用此架构为 [Movie_flow] 创建一个表:

    [PK]movement_id (could be an identity or an pair year/movement number if you wanna reset  movements counter every year)
    movie_id
    movement_datetime
    movement_type (I-in/O-out)
    quantity
    

    当您想知道特定日期的电影可用性时,您可以简单地按 movie_id 读取所有动作,为给定日期添加 motion_type "I" 的数量值并减少 motion_type "O" 的数量:movie_copies - 这个计数为您提供电影副本可用。

    保持清洁表以优化性能,如果您想保留历史记录,可以存档旧动作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多