All templates

Inventory Management Database Design

Design an inventory database schema — products, warehouses, stock levels, suppliers, and stock movements.

Use this template

What you get

  • Products organized by category, stocked across multiple warehouses
  • Stock table keyed by product and warehouse with reorder levels
  • Append-only stock movement log tied to suppliers

What this template is for

This inventory management database design gives you a ready-to-edit ER diagram for tracking stock across products, warehouses, and suppliers. It models the core entities of any inventory system: a product catalog organized by category, warehouses that hold stock, a stock table that records quantity and reorder levels per product per warehouse, and a stock movement log that captures every receipt and dispatch tied to a supplier. Use it to design a new inventory system, document an existing one, or explain how reorder levels and stock movements relate before you write a single migration.

When to use this template

  • Design the schema for a new inventory or warehouse management system.
  • Model multi-warehouse stock so the same product can have different quantities per location.
  • Plan a stock movement log that distinguishes receipts, dispatches, and adjustments.
  • Decide where reorder levels live and how low-stock alerts will query them.
  • Document an existing inventory database for a new engineer joining the team.
  • Explain to stakeholders how suppliers connect to stock movements.

How to use it

  1. 1Start with the Product table and link it to a Category for organization.
  2. 2Add a Warehouse table — each warehouse holds stock independently.
  3. 3Add a Stock table keyed by product + warehouse, holding quantity and reorder level.
  4. 4Add a StockMovement table to log every in/out change with a type and timestamp.
  5. 5Link StockMovement to Supplier so each receipt records where the stock came from.
  6. 6Add cardinality: one product has many stock rows; one stock row has many movements.

Quick example

Multi-warehouse inventory schema

Category (id, name, parent_id)
| 1 has many |
Product (id, category_id, sku, name, unit_price)
| 1 stocked as many |
Stock (id, product_id, warehouse_id, quantity, reorder_level)
| 1 logs many |
StockMovement (id, stock_id, supplier_id, type, quantity, created_at)

Start editing online

Open the template in CodePic, replace the sample nodes, and turn it into your own study board in a few minutes.

See examples: /templates/inventory-database-design/examples

More templates you might like