涉及多个位置的库存 ERD
Inventory ERD that involves multiple locations
我正在尝试设计涉及库存的实体关系图。所有物品构成一个大库存,但它们可以分布在多个位置。例如:20 箱物品 A 在位置 1,5 箱物品 A 在位置 2。
如果他们点击一个项目,他们需要能够看到它在什么位置以及每个位置有多少。
如果他们点击某个位置,他们需要能够看到该位置有哪些物品以及数量。
我知道我的 table 之一将成为 'Item' 我知道我的另一个 table 将成为 'Location'
但是,我无法弄清楚如何使用连接 tables 和库存 table 从这里分支,它实际上跟踪每个项目以及每个位置的数量。
有人可以帮助我入门吗?任何事情都会有所帮助。
如果您单独记录项目,例如
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
假设您想使用一个简化的系统来跟踪您的实际库存的当前快照,您可以使用这样的模型:
ITEM
和 LOCATION
之间的交叉点跟踪特定位置的特定项目的手头数量(即您的库存)。
要获取所有位置的物品总库存,您可以使用此方法:
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 的回答视为跟踪库存变动的更复杂替代方法。
我正在尝试设计涉及库存的实体关系图。所有物品构成一个大库存,但它们可以分布在多个位置。例如:20 箱物品 A 在位置 1,5 箱物品 A 在位置 2。
如果他们点击一个项目,他们需要能够看到它在什么位置以及每个位置有多少。
如果他们点击某个位置,他们需要能够看到该位置有哪些物品以及数量。
我知道我的 table 之一将成为 'Item' 我知道我的另一个 table 将成为 'Location'
但是,我无法弄清楚如何使用连接 tables 和库存 table 从这里分支,它实际上跟踪每个项目以及每个位置的数量。
有人可以帮助我入门吗?任何事情都会有所帮助。
如果您单独记录项目,例如
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
假设您想使用一个简化的系统来跟踪您的实际库存的当前快照,您可以使用这样的模型:
ITEM
和 LOCATION
之间的交叉点跟踪特定位置的特定项目的手头数量(即您的库存)。
要获取所有位置的物品总库存,您可以使用此方法:
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 的回答视为跟踪库存变动的更复杂替代方法。