涉及多个地点的库存ERD

时间:2016-07-31 06:07:46

标签: sql database-design architecture erd

我正在尝试布局涉及库存的实体关系图。所有项目构成一个大的库存,但它们可以分散在多个位置。例如:项目A的20个案例位于1处,项目A的5个案例位于2号位置。

如果他们点击一个项目,他们需要能够看到它在哪个位置以及每个位置有多少。

如果他们点击位置,他们需要能够看到该位置的物品数量和数量。

我知道我的一张桌子将是' Item'我知道我的另一张桌子将是“位置'

但是,我无法确定如何使用连接表以及实际跟踪每个项目的库存表以及每个位置的数量来分支。

有人可以帮助我开始。一切都会有所帮助。

2 个答案:

答案 0 :(得分:3)

假设您想使用简化的系统来跟踪实际库存的当前快照,您可以使用以下模型:

ERD

ITEMLOCATION之间的交叉点跟踪特定位置特定商品的库存量(即您的库存)。

要获取所有位置的商品总库存,您可以使用此功能:

SELECT 
  I.ItemID
, I.Description
, SUM(Q.Quantity)
FROM ITEM I INNER JOIN ON_HAND Q
  ON I.ItemID = Q.ItemID
GROUP BY
  I.ItemID
, I.Description

但请注意,在大多数实际情况中,保留实际库存的简单快照有点过于简单。您还应该将我对this question的回答视为跟踪库存变动的更复杂的替代方案。

答案 1 :(得分:1)

如果您单独录制项目,例如

Item (item_id PK, description)
Location (location_id PK, name)
Inventory (inv_id PK, item_id FK, location_id FK)

然后您可以在需要时查询总数:

SELECT l.location_id, l.name, i.item_id, i.description, COUNT(*)
FROM Inventory v
INNER JOIN Location l ON v.location_id = l.location_id
INNER JOIN Item i ON v.item_id = i.item_id
GROUP BY l.location_id, l.name, i.item_id, i.description