这不是一个与特定语言相关的问题,而是关于处理库存的架构的正确方法的问题。
考虑以下用于存储软件的结构:
platforms (platformID*, platformName)
titles (titleID*, titleName)下面是独一无二的产品的连接表
products (platformID*, titleID*, releaseDate, notes)下面是我想要记录我的库存的表格
inventory (platformID*, titleID*, quantityAvailable)在我看到的示例中,其他人创建了一个表,其中软件的每个唯一副本都存储在单独的一行中:
software(softwareID*, softwareTitle)
inventory(inventoryID*, softwareID*)我想知道哪种方法更可取?我是否应该为每个唯一的软件拷贝创建一个inventoryID,从而创建一行:
inventory(inventoryID*, platformID*(fk), titleID*(fk))或者使用存储数量的表,如下所示:
inventory(platformID*(fk), titleID*(fk), quantityAvailable)发布于 2010-02-19 21:31:46
我也会从quantityAvailable开始,而不是从所有项目的行开始。但我仍然会选择inventoryId,因为可能会出现这样的情况,您必须使用相同的平台/标题组合来分析条目--使用inventoryId,您将来会更有能力。
我还建议再添加一列: versionNo -软件产品的版本号。有时,您可能会有同一产品的不同版本。有了这些信息后,将信息放入标题中并不是一个好主意(例如,您希望搜索所有"Microsoft Office“产品,而不考虑其版本...)。
发布于 2010-02-19 21:24:48
每个库存都有一个唯一行的好处是,以后如果您想要跟踪一些东西,比如暂挂的库存,预订的库存,已经售出但仍然可以退货的库存,等等。
我看不出这种方法有什么真正的缺点,除了它可能会有更多的工作,如果这些东西不是真的需要的话,这些工作可能得不到回报。
发布于 2010-02-19 21:21:48
我应该为每个唯一的软件拷贝创建一个inventoryID,从而创建一行吗?
没有理由这样做,除非您想要存储有关每个唯一软件副本的某些信息,例如购买每个副本的日期。这在软件清单中很少是实际的。
或使用存储数量的表?
您还可以考虑在products表中添加一个quantityAvailable列,除非您认为最终会希望每个图书都有许多库存,以便能够分配一定数量的特别优惠的库存、即将到期的库存等等。
https://stackoverflow.com/questions/2296485
复制相似问题