I didn’t really think database design would be the part that slows me down. I expected JavaScript, maybe APIs, maybe deployment. Not tables.

But the moment I started trying to design an inventory system properly, I ran into something called Boyce-Codd Normal Form. BCNF sounded simple when I first read about it(No I'm kidding). Then I actually tried applying it, and everything started feeling even less clear.

At some point, I had a working schema. Products, sales, purchases, stock movements. It all worked. Kind of!

My first mistake was thinking normalization was about splitting tables until everything looks clean.

So I kept breaking things apart: