【问题标题】:Looking for best structure for this inventory system为这个库存系统寻找最佳结构
【发布时间】:2013-07-19 09:52:26
【问题描述】:

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

表格 投资者 // 我有时有很多其他企业持有股份

  • 投资者编号
  • 企业名称

表格 供应商 // 我将在后面添加其他内容,例如电话号码、地址和其他内容。

  • 供应商 ID
  • 供应商名称

表格 PurchaseLot

  • 批号
  • 日期
  • 成本
  • Invester_InvesterID
  • Supplier_SupplierID

表格测试员

  • 测试者ID
  • 名称 // 稍后,一旦我创建了一个登录,它将是employeeID

表格监控

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

桌子笔记本电脑

  • 笔记本电脑ID
  • 制造商
  • 型号
  • 序列号
  • Tester_TesterID
  • PurchaseLot_PurchaseLotID //插入时触发将LaptopID添加到Inventory以创建统一的库存编号系统。

表格库存

  • InventoryID
  • Monitor_MonitorID
  • Laptop_LaptopID

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

【问题讨论】:

  • 我建议添加“lastUpdated”之类的列,以便更准确地跟踪库存
  • 欢迎来到 SO。请阅读FAQHow to Ask 以了解此处适用的问题类型。不幸的是,对数据库设计的完整审查对于 SO 来说过于宽泛。你可能Database Administrators上运气更好
  • 其实这只是DB的一小部分。也许我的问题不够简洁?

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


【解决方案1】:

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

  1. 是否每件库存商品都有显示器和键盘?
  2. 当您将平板电脑添加到库存时,您希望做什么?
  3. 您是否希望库存表会随着时间的推移而扩展,并在扩展时包含许多空值?

我建议您的应用程序中至少需要包含以下三个表

  1. 项目 - 包含所有项目共有的信息 - 很可能包括投资者和供应商 ID。
  2. 项目类型 - 包含该项目是(例如)平板电脑的信息;以及有关平板电脑的一般信息。
  3. 组件 - 顶级项目加上(例如)平板电脑随附的 OTG 电缆的标识。此表需要表示变量和未知深度的层次结构。

可能除了组件表之外,您还需要一个类似的层次结构“关联_与”。

这导致一种比您建议的方法更复杂的方法,但我认为您无法提供所需的功能并保持简单。

HTH。

【讨论】:

  • 这完美地回答了我的问题。
猜你喜欢
  • 2012-12-03
  • 2012-03-28
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 2019-08-11
  • 2011-01-24
  • 2021-07-13
相关资源
最近更新 更多