数据建模:加油站管理

时间:2013-04-25 21:09:58

标签: database database-schema data-modeling

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

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

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

我如何跟踪这个?

1 个答案:

答案 0 :(得分: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

因此我需要将 SalesPersonID 添加为外键 我的销售表。

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

并且与此相符,这意味着您还需要在 Product_In_Sales 中添加字段,例如 FlagForInventory ,并使用 Boolean 作为数据类型。

所以,让我们说主管进来做第一个库存,然后卖掉产品 在当天的Product_In_Sales中,FlagForInventory和标志为True 然后将使用Inventory_Daily_Flag字段转移到Daily_Inventory_Levels 为1表示作为第一个库存,当然水平也会更新。

所以当那天结束和第二个库存被执行时那些 从Product_In_Sales表开始当天的销售,其FlagForInventory为false 对于FlagForInventory,它将标记为True,然后再次转移到Daily_Inventory_Levels,Inventory_Daily_Flag为2表示第二个库存。 当然,您也需要更新级别。

有意义吗?如果不是,我总能改变方法? ; - )