我想做一个关系数据库系统,用于非营利的本地计算机硬件。有两个相互关联的功能,我想弄清楚如何实现。首先,我们需要管理我们的零部件库存,其次,我们需要跟踪计算机系统进入我们的捐赠,以及我们发放它们时的捐赠情况。
首先,我们有一个简单的零件清单。我们不需要跟踪单独的部分(无论如何,我们不能),所以我想要建模的是计数。我的想法是有不同的‘垃圾桶’的零件,只有一个简单的计数。因此,如果我们将视频卡从“库存”垃圾箱移动到“回收”垃圾箱,我想要-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个完整的系统……”
发布于 2010-01-20 00:58:55
这听起来像是一个已经解决的问题:http://sourceforge.net/projects/phpmyinventory/ http://sourceforge.net/projects/asset-tracker/,这是我通过在搜索框中输入'inventory‘在sourceforge上找到的两个链接。
最基本的描述是:
我在SQL方面还不够强大,不能推荐一种方法来处理计算机捐赠/销售及其分解成部分--我可能会让一些外部应用程序处理大部分逻辑,并跟踪这一点:
a computer
To Who was a computer given
至于逻辑处理:例如,一个网页上写着:“哇!我们收到了一台电脑!它有没有:
当送出一台计算机时,也可以这样做--但你需要从存储中删除“1”,因为每个部件都会消失!
那么,我们该如何处理库存呢?好的,你可以有一个这样的表:
video card | recycle | donation-in | storage | garbage
sound card | recycle | donation-in | storage | garbage
power supply | recycle | donation-in | storage | garbage其中每个仓位是在一个时间点上存在的数量。如果你想让它更具体,你可以添加一个"description“列,这样你就可以知道每种类型的视频卡的数量。
还有一张表,看起来像这样:
part name | from_bin | to_bin | quantity移动数量的大部分逻辑可能应该由应用程序处理(我更喜欢Ruby-on-Rails,所以这对我来说是有意义的)。希望这能有所帮助。
发布于 2013-03-23 08:55:35
因为计算机是一组零件位,我们在LedgerSMB中跟踪程序集的方式是这样的:
我们有一个零件表,其中每个零件都有一个装配标志。
我们有一个装配表,它提供部件和其他部件之间的分层映射。部件可以由其他部件、零件和人工构建。
https://stackoverflow.com/questions/2025416
复制相似问题