库存系统的数据库结构

时间:2012-12-15 09:29:49

标签: database database-design database-schema

我正在尝试为电脑商店开发库存和销售点系统。他们大多数都有产品序列号,但有些产品(例如闪存驱动器)没有。当他们要销售任何产品时,他们希望通过“产品序列号”从库存中获取产品信息,对于那些没有序列号的产品,他们将从下拉列表中选择产品信息。

我已经设计了用于保存库存信息的数据库,但我对如何保留序列号感到困惑。能否请您给我一个更好的方法来构建我的数据库,以保存带序列号和不带序列号的产品的信息

感谢:)

表:类别

category_id category_name

表:品牌

brand_id brand_name

表:产品

product_id  category_id   brand_id   product_name

表:purchase_order

p_order_id supplier_id total_amount  purchase_date

表:purchase_details

p_details_id  p_order_id   product_id   unit_price   quantity

表:inventory_transaction(此tbl用于跟踪当前库存,对于每次购买我添加正值,对于购买退货我添加负值)

inv_tran_id    product_id   unit_price  quantity

修改

当我填满我的数据库表时,它看起来如下:

表:产品

product_id  category_id   brand_id   product_name
   1            1          2           17 Inch LCD LED
   2            2          5           8 GB Flash Drive

PURCHASE_ORDER

p_order_id supplier_id total_amount  purchase_date
  1            1         500.00        2012-12-15 

表:purchase_details

p_details_id  p_order_id   product_id   unit_price   quantity
   1             1            1           200.00        10
   2             1            2           50.00          5

1 个答案:

答案 0 :(得分:0)

当您说product's serial number产品的编号与产品实体相关联并且应该在产品表上时,您已经回答了自己的问题。这是假设产品序列号对于产品而言是唯一的。

制造商的产品序列号不是唯一的,因此与产品有多对一的关系。这必须保存在另一个表上,该表可能称为Product_Item或Manufacturer_Product,其中制造商的产品序列号为主键,Product_ID为外键。您可以将其扩展为定义其他制造商属性,例如制造商的产品名称(可能不同),然后再定义到制造商本身。如果您想通过库存订单进行任何类型的自动库存水平控制,您无论如何都必须这样做。