这是不是与特定的语言问题,而在建筑的处理库存的正确方法。

考虑用于存储软件的结构如下:

platforms (platformID*, platformName)
titles (titleID*, titleName)

和以下为独特的产品

加入者表
products (platformID*, titleID*, releaseDate, notes)

和下面是一个表,我想保持我的库存跟踪

inventory (platformID*, titleID*, quantityAvailable)

在实施例I所看到的,其他人创建的,其中一个软件的每个唯一副本存储在一个单独的行作为这样的表:

software(softwareID*, softwareTitle)
inventory(inventoryID*, softwareID*)

我想知道哪种方法是优选的?我应该创建一个inventoryID并且因此一排对每个唯一的软件副本:

inventory(inventoryID*, platformID*(fk), titleID*(fk))

或者使用一个表,其存储量代替,因为这样的:

inventory(platformID*(fk), titleID*(fk), quantityAvailable)
有帮助吗?

解决方案

我也将开始与quantityAvailable而不是为所有项目行。 的我还是会选择一个inventoryId,因为情况可能发生,你必须使用相同的平台/标题组合解剖条目 - 与inventoryId你是在未来更enhanceable

我也建议增加一个进一步列:使用versionNo ---软件产品的版本号。有时你可能有不同的同一产品的版本。当你有这样的,它不是信息拖放到标题(比如你要搜索的不管版本的所有“微软办公”的产品...)是个好主意。

其他提示

为每件库存的唯一行的好处是,以后,如果你想跟踪之类的东西库存是对临时滞留,库存是对序,这就是被出售,但仍然可以返回,等库存

我没有看到任何真正的缺点这种方法除了它可能是更多的工作,这可能不是还清,如果不是真的需要这些东西。

  

我应该创建inventoryID和   因此,一排每个独特的软件   复制?

有没有理由这样做,除非你想在每一个独特的软件拷贝,一些信息存储诸如每个副本购买日期。这是在软件清单很少pracitical。

  

或者使用一个表,其存储量   代替?

您也可以考虑在你的产品表中新增quantityAvailable列,除非你认为最终你会想为每个标题许多库存,为了能够分配的股票数量是在特殊优惠,即很快将要到期等

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top