Architecture NocoDB

NocoDB for Inventory: A Practical Setup for Small Teams

Manage inventory in a spreadsheet and the numbers will stop matching. How to run it with three linked tables, and when to move to a real warehouse system.

E
Eric Founder, Roamer Tech · · 7 min read

Want to start now? Deploy your NocoDB in 60 seconds

Smart spreadsheet — the open-source Airtable alternative. From NT$499/mo.

Subscribe to NocoDB

Inventory management at a small team is usually one Excel file. And that file will eventually run into the same thing: the numbers on paper stop matching the stock on the shelf, and you can't find which entry was wrong.

The cause is almost always the same — someone edited the "quantity on hand" cell directly.

The 30-Second Overview

ItemApproach
Core principleStock is calculated, not typed in
How many tablesThree: items, movements, suppliers
Where current stock comes fromA rollup that sums the movement quantities
Most valuable featureAutomatic alerts below the safety stock level
When to replace itMultiple warehouses, lot numbers and expiry dates, barcode scanning

Core Principle: Stock Numbers Should Never Be Edited by Hand

The spreadsheet approach keeps a "quantity on hand" column: subtract on shipment, add on receipt. The problem is that this column has no history, a wrong edit is invisible, and two people editing at once overwrite each other.

The right approach is that stock isn't a field, it's a computed result. What you record is every movement in and out; the system calculates the quantity on hand.

That way, whenever a number looks questionable, you can trace back to the entry that caused it.

Three Tables Are Enough

TableWhat goes in it
ItemsName, part number, unit, safety stock level, supplier
MovementsDate, item (link), in or out, quantity, reason, handler
SuppliersName, contact details, lead time

The key is that movements link to items, and then a rollup on the items table sums every movement for that item — that's your quantity on hand, and it's always right.

For "in or out," store signed numbers so the sum is trivial. Shipments go in as negatives, receipts as positives.

A Few Design Choices That Get It Actually Used

However well the system is designed, it's pointless if the people on the floor don't use it. These things matter a lot:

Log movements through a form view. Don't make warehouse staff edit the table directly — give them a form with just four fields to fill in. It works on a phone, so they can record it standing in front of the rack.

Watch restocking in a kanban view. Columns by status make it obvious at a glance what needs reordering. That's far more useful than staring at a 200-row table.

Set the safety stock field. Then hook up automation via webhook so a notification fires when stock drops below the threshold — this is the single most valuable feature in the whole system, because it's the only part that comes to you.

When to Replace It

Let's be honest. NocoDB is a general-purpose database tool, not a warehouse system. It can't carry the following requirements, and forcing it will hurt:

  • Transfers between warehouses. Quantities of the same item in different warehouses and movements between them make the data model start to get complicated.
  • Lot number and expiry management. Food, pharmaceuticals, and cosmetics need FIFO and expiry tracking — that's specialist territory.
  • Barcode scanning for receipt and issue. There's no ready-made scanning flow; you'd be wiring up the hardware yourself.
  • Real-time sync with payments and e-commerce platforms. You can connect it with automation, but if your requirements for immediacy and consistency are strict, a specialist system is more reliable.

The test is the same as for any home-built system: once maintaining the tables themselves starts eating serious time, the license fee you saved is already gone.

Start From the Sorest Point

Don't design the complete data structure up front. Solve one concrete pain first — usually "we don't know when to reorder."

Build the items table plus the safety stock level plus low-stock alerts, and use it for two weeks. When the people on the floor start complaining about something else, those complaints are what you should design next.

Systems where the full architecture was drawn before rollout usually end up elegant and unused.

Start From the Sorest Point

Don't design all three tables up front. Solve one concrete pain first — usually "we don't know when to reorder."

Version one does exactly three things: the items table, a safety stock field, and low-stock alerts. Use it for two weeks.

Then wait for the people on the floor to start complaining about something else — "we don't know when this batch came in," "how much did we write off last month?" — because those complaints are what you should design next.

Systems where the full architecture was drawn before rollout usually end up elegant and unused.

How to Handle Stocktakes

When physical stock doesn't match the system's number, don't just edit the number — that strips the history of its meaning.

The right move is to add a "stocktake variance" movement record, with the difference as the quantity and "stocktake adjustment" as the reason. The system's number then matches, and later you can see how many times you adjusted this month and by how much.

The number of adjustments is itself a signal: if you need large adjustments every month, somewhere in the process the records aren't being filled in properly.

Why "Quantity on Hand" Can't Be a Field

The spreadsheet approach keeps a "quantity on hand" column: subtract on shipment, add on receipt. That design has three problems:

  • No history — when a number is wrong, you don't know which edit broke it
  • It gets overwritten — two people editing at once, last save wins
  • Nowhere to start when it doesn't match — all you can do is count everything again

Switch to "record every movement and let the system sum it up" and all three problems disappear at once. Whenever a number looks questionable, you can trace back to the entry that caused it.

That's the only decision in this whole design that truly matters. Everything else is detail.

Which Fields the Movements Table Needs

FieldWhy you need it
DateReconciliation and traceability
Item (link)The basis for the rollup
Quantity (signed)Receipts positive, shipments negative, so summing is trivial
ReasonSale / return / write-off / stocktake variance
HandlerThe most useful column when the numbers don't match
NotesExplanations for anything unusual

Plenty of people skip the "reason" column, but it determines whether you can later answer questions like "how much did we write off this month?" Adding a dropdown costs almost nothing.

FAQ

Q: Do I really need three separate tables?

Items and movements are required; suppliers is optional. If you only have two or three suppliers and their details never change, just put them in a field on the items table.

Q: What if the people on the floor won't use it?

Use a form view. Give them a form with four fields that works on a phone — no need to learn the whole system, and they can't see the rest of the data either.

Q: How do I set up low-stock alerts?

Add a safety stock field to the items table and hook a webhook up to an automation flow that sends a message when stock falls below the threshold. It's the only part of the system that comes to you, and the most valuable feature in it.

Q: Can I scan barcodes?

There's no ready-made scanning flow; you'd wire up the hardware yourself or pair a phone scanning app with a form. If barcodes are central to your process, you should be looking at a dedicated warehouse system.

Q: Does it get slow as data grows?

The movements table keeps accumulating, and rollups become noticeable once the number of linked records is large. Consider archiving old data periodically, or switching to a scheduled calculation stored in a regular field.

Sources and Further Reading

For NocoDB's field types and permission model, the official documentation is authoritative:

Further Reading

Want Someone to Build It for You?

Once the data volume climbs, or you need to connect this to your company's existing systems, it stops being just a matter of picking a tool. Roamer Tech takes on custom enterprise system development and API integration:

Ready to get started with NocoDB?

60 seconds after you subscribe, NocoDB is installed for you — an isolated container with hard resource limits you never share, and HTTPS out of the box.

Subscribe to NocoDB

Billed monthly · no contract · cancel anytime

Hi, I'm Roamer! Tap me anytime with a question and I'll help you out.

Roamer

Roamer - AI assistant

Online
Roamer

Ask me anything, anytime — I'll do my best to help!

Powered by RoamerHost AI