I wrote an inventory system recently and a few fields have proven very useful. I made sure to include a 'created' datetime, for all rows and an 'IsActive' bit, that is set to false when you choose to delete something (so every delete is a soft-delete) and from there, made sure I had a nicely, but not overly, normalized schema to describe my data.
If you want a simple inventory and are thinking it can be covered with 2 or 3 tables, you'll probably end up with 20 to 30, possibly a lot more. Let your items be one table, itemtypes another, and itemcategories be another, for example. Be sure to have a separate history table for items, purchases, sales, etc.
Start with your most broad categories. Flesh them out with all the tables you could possibly need to describe, for example, your inventory. If you'll have boxes, nails, hammers, you might want a Category table that lists 'Containers', 'Hardware', 'Tools'.
For each hammer you add to your inventory, it should be a new row in your item table, that references your itemtype 'Hammer'. Then as each is sold, you can change the status of each item. If you want to know how many hammers you have, you query the item table for all items of type 'hammer' that have a status available. If a hammer is sold you change it to sold. If the hammer is returned in good condition, you change that specific item back to Available.
Don't delete rows, just set their 'IsActive' bit to false. That way, reporting on your data later on will still work correctly if it links to 'deleted' items, and during general usage you can just query items where IsActive = 1.
Hope this helps, this is my technique, though I'm sure there are many other. Comments welcome, it's always good to learn.