我需要创建一个数据库来管理加油站。
我正在考虑基本的产品库存和销售数据模型,但需要进行一些更改。
见http://www.databaseanswers.org/data_models/inventory_and_sales/index.htm。这是他们如何进行的:经理每天两次跟踪库存和销售情况,每次加油泵服务员负责,并负责销售。
我如何跟踪这个?
答案 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表示第二个库存。 当然,您也需要更新级别。
有意义吗?如果不是,我总能改变方法? ; - )