首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“简单”库存系统的设计

“简单”库存系统的设计
EN

Stack Overflow用户
提问于 2010-01-08 12:01:10
回答 2查看 2.9K关注 0票数 1

我想做一个关系数据库系统,用于非营利的本地计算机硬件。有两个相互关联的功能,我想弄清楚如何实现。首先,我们需要管理我们的零部件库存,其次,我们需要跟踪计算机系统进入我们的捐赠,以及我们发放它们时的捐赠情况。

首先,我们有一个简单的零件清单。我们不需要跟踪单独的部分(无论如何,我们不能),所以我想要建模的是计数。我的想法是有不同的‘垃圾桶’的零件,只有一个简单的计数。因此,如果我们将视频卡从“库存”垃圾箱移动到“回收”垃圾箱,我想要-1表示视频卡库存,+1表示视频卡回收。垃圾箱可能会根据需要更好地定义,例如pci视频卡、agp视频卡等。或者,如果我们计算库存,我们可能需要从库存中取-3,并将+3转换为“收缩”。

重点是随时知道我们有多少视频卡,有多少条ram等。垃圾箱的两个方面是它里面是什么类型的零件(在任何特定级别,如“old-misc-card”或“32MB-3.3V-agp- video”),以及垃圾箱的用途,如“捐赠”、“库存”、“回收”、“商店”、“收缩”等。

此外,我们希望看到零件的潮起潮落趋势和历史数据,因此我们需要随时查询库存。

那么我该如何设计表来处理这个问题呢?我在想,这应该是一本复式账本。我可能有一个名为'BinTransactions‘的表,其中包含from_bin、to_bin和amount。金额应该是一个正整数,如果我想要编写一个查询,看看从库存中取出多少,我会将其设为负数。类似于"SELECT SUM(amount) * -1 FROM BinTransactions WHERE from_bin = 'inventory‘AND time_period = ..."?

第二部分是计算机系统本身。无论他们处于什么状态,他们都是以捐赠的形式出现的。零件可以从它们中取出并放入库存或回收;零件可以从库存中取出并放入计算机中。我想我可以把一台电脑变成

一台计算机最终以授权的形式走出了我们的系统,但这种结构有一层嵌套。它是计算机中计算机部件的集合,但也有显示器、键盘、鼠标,也许还有扬声器。而一大笔拨款可能是几个系统,也有网络设备。是否应该“嵌套”分组的逻辑层次结构(部件放入计算机,计算机放入赠与),或者是否可以只将每次捐赠只包含一大组部件?如果它是一大组部件,如果我们从拨款中拿回一台计算机,就不一定知道哪些部件与哪台计算机匹配。我们还希望能够从报告中了解到“本季度捐赠了34个完整的系统……”

EN

回答 2

Stack Overflow用户

发布于 2010-01-20 00:58:55

这听起来像是一个已经解决的问题:http://sourceforge.net/projects/phpmyinventory/ http://sourceforge.net/projects/asset-tracker/,这是我通过在搜索框中输入'inventory‘在sourceforge上找到的两个链接。

最基本的描述是:

  • Computer parts进来。
  • Computer parts离开。

我在SQL方面还不够强大,不能推荐一种方法来处理计算机捐赠/销售及其分解成部分--我可能会让一些外部应用程序处理大部分逻辑,并跟踪这一点:

  • Who

a computer

  • Who was a computer given

To Who was a computer given

至于逻辑处理:例如,一个网页上写着:“哇!我们收到了一台电脑!它有没有:

  1. A电源?
  2. 视频卡?
  3. 声卡?
  4. 等。“

当送出一台计算机时,也可以这样做--但你需要从存储中删除“1”,因为每个部件都会消失!

那么,我们该如何处理库存呢?好的,你可以有一个这样的表:

代码语言:javascript
复制
video card   | recycle | donation-in | storage | garbage
sound card   | recycle | donation-in | storage | garbage
power supply | recycle | donation-in | storage | garbage

其中每个仓位是在一个时间点上存在的数量。如果你想让它更具体,你可以添加一个"description“列,这样你就可以知道每种类型的视频卡的数量。

还有一张表,看起来像这样:

代码语言:javascript
复制
part name | from_bin | to_bin | quantity

移动数量的大部分逻辑可能应该由应用程序处理(我更喜欢Ruby-on-Rails,所以这对我来说是有意义的)。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-03-23 08:55:35

因为计算机是一组零件位,我们在LedgerSMB中跟踪程序集的方式是这样的:

我们有一个零件表,其中每个零件都有一个装配标志。

我们有一个装配表,它提供部件和其他部件之间的分层映射。部件可以由其他部件、零件和人工构建。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2025416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档