1

我需要创建一个数据库来管理加油站。

我正在考虑一个基本的产品库存和销售数据模型,但它需要一些更改。

请参阅http://www.databaseanswers.org/data_models/inventory_and_sales/index.htm。他们是这样进行的:经理每天两次跟踪库存和销售情况,每次都有加油站服务员负责,并负责销售。

我怎样才能跟踪这个?

4

1 回答 1

1

使用您提供的模型,您可以使用第一个模型作为参考:

我会使用所有六 (6) 个表,即:

 1) Products
 2) Product_Types
 3) Product_In_Sales
 4) Sales
 5) Daily_Inventory_Level
 6) Ref_Calendar

但是我不得不通过更改和添加来进行一些更改:

首先,我需要包含至少具有以下字段的 SalesPerson 表

 1) SalesPersonID
 2) Lastname
 3) Firstname
 4) Alias

因此,我需要在我的Sales表中添加SalesPersonID作为外键。

现在,由于您希望每天有两次 Inventory,那么您可以通过多种方式为 Daily_Inventory_Level 表添加单个主键,或者您可以添加一个名为Inventory_Daily_Flag的新字段,其值只有 1 或 2。如果 1 表示这是第一个库存,如果 2 表示这是当天的第二个库存。这意味着您同时是主键和外键将不再只是 Day_Date 和 ProductID,还有 Daily_Inventory_Level 表的 Inventory_Daily_Flag。

并且与此一致,这意味着您还需要在Product_In_Sales中添加一个字段,例如FlagForInventory,并将布尔值作为数据类型。

因此,假设一名主管进来进行第一次盘点,那么当天在 Product_In_Sales 中销售的产品将在 FlagForInventory 中标记为 True,然后将转移到 Daily_Inventory_Levels,其中 Inventory_Daily_Flag 字段为 1 以指示为第一个库存,当然关卡也会更新。

因此,当一天结束并且要执行第二个库存时,那些来自 Product_In_Sales 表的当天销售额,其 FlagForInventory 为 false,那么 FlagForInventory 将被标记为 True,然后再次转移到 Daily_Inventory_Levels,Inventory_Daily_Flag 为 2,表示第二个库存. 当然,您还需要更新关卡。

是否有意义?如果不是,我总是可以改变方法?;-)

于 2013-04-26T02:36:32.780 回答