寻找此库存系统的最佳结构

时间:2013-07-20 00:39:15

标签: mysql database database-design relational-database database-schema

所以我过去一周的问题是如何构建我的库存系统。我正在尝试编写一个数据库来跟踪各种不同IT相关项目的每个小细节,包括但不限于......来自各个制造商的Windows笔记本电脑,苹果笔记本电脑,基于Windows的台式机,苹果台式机,Iphone,android手机,黑莓手机,打印机设备,服务器设备等等。我还将添加汽车,摩托车和许多其他随机物品,我有一个业务,我买卖任何我可以赚钱的东西。我需要数据库来进行库存/资产管理,销售跟踪以及客户/业务关系。我以不同的价格从许多不同来源提取库存。我想要做的是带来很多,分配很多数量,测试和盘点每个项目跟踪LotNumber,Tester。

Invester //我有时会有很多其他企业的利益

  • InvesterID
  • BUSINESSNAME

供应商//我会添加其他内容,如电话号码,地址和其他内容。

  • 供应商ID
  • SupplierName

PurchaseLot

  • LotID
  • 日期
  • 费用
  • Invester_InvesterID
  • Supplier_SupplierID

测试人员

  • TesterID
  • 名称//稍后我创建登录后将是employeeID

表格监控

  • MonitorID
  • 尺寸
  • 等级
  • 模型
  • 制造商
  • Tester_TesterID
  • PurchaseLot_PurchaseLotID
  • ETC //插入时触发将MonitorID添加到Inventory以创建统一的库存编号系统。

笔记本电脑

  • LaptopID
  • 制造商
  • 模型
  • 串行
  • Tester_TesterID
  • PurchaseLot_PurchaseLotID //在插入时触发将LaptopID添加到Inventory以创建统一的库存编号系统。

广告资源

  • InventoryID
  • Monitor_MonitorID
  • Laptop_LaptopID

这是我的基本表格结构。真正的问题是,这是最好的方法,还是会引起更大的麻烦?我打算做什么,我为不同种类的物品,平板电脑,手机,笔记本电脑,台式机等创建一个表,我可能不得不将不同的项目拆分成零件进行转售,因为并非所有项目都可以修复,因此必须创建零件表。我还将通过为仓库分配货架编号来跟踪仓库中的哪个位置,后者必须扩展以跟踪多个仓库,所有者,业务(一年内)如果有更简单的方法请告诉我。我希望尽可能简单直接地使用它,这样可以很容易地编写多个php脚本来处理不同的任务,包括在网站上出售。我也不确定如何处理多个相同的项目,特别是因为同一台笔记本电脑的多个可以分解成需要跟踪的10多个不同部分。任何建议或煽动都会很棒。只是为了概述我的经验,我基本上就是复制和粘贴之王。我用他们的php对应物创建了一些数据库来处理客户关系。但这是迄今为止规模最大,最雄心勃勃的项目,而且实际上只是为了我的业务的适当可持续增长。

1 个答案:

答案 0 :(得分:0)

正如@Jim Garrison暗示的那样,你在这里提出了一个非常广泛的问题,所以我无法提供答案,只能提出一些需要考虑的问题。为每种类型的产品使用一个表,然后将所有类型的产品组合在一起的表的方法本质上是脆弱的,并且不太可能扩展。原因包括:

  1. 每个库存项目都有显示器和键盘吗?
  2. 向平板电脑添加平板电脑时,您希望做什么?
  3. 您是否希望库存表随着时间的推移而扩展,并且在扩展时包含许多空值?
  4. 我建议您的申请中至少需要包含以下三个表格

    1. 项目 - 包含所有项目共有的信息 - 可能包括投资者和供应商ID。
    2. 项目类型 - 包含此项目的信息(例如)平板电脑;和一般的平板电脑的具体信息。
    3. 组件 - 顶级项目以及(例如)平板电脑附带的OTG电缆的标识。该表需要表示变量和未知深度的层次结构。
    4. 除了组件表之外,您还可能需要类似的层次结构“associated_with”。

      这导致了比您提议的更复杂的方法,但我不相信您可以提供您需要的功能并保持简单。

      HTH。