How to create a normalized database to manage inventory for a small business?
Its a good start.


You probably want to split out the customer table: One for the businesses and one for the people.
On tblCarpets and tblOtherProducts, what about a keyword field? You could do some nifty stuff in Java with that.
Each table could benefit from a create_timestamp, modify_timestamp and, if you've got a way to track users (a tblUsers), created_by and modified_by.
Hide_ind - you might want to hide information from the front end, but keep it on the back end for reporting purposes.
You can get rid of 'tbl' in SQL. Its like saying ATM Machine - the M stands for Machine.
A discounts table, maybe? How would you track price changes?
Do they have their own trucks? How many staff? Do you want to track who sent what where, and how?


A few updates from the comments - I'd create a few tables like this:

create table items (itemID int, Type varchar(255), item_name varchar(255), keyword nvarchar(1000), starting_length int,
create_timestamp datetime, modify_timestamp datetime)

create table prices (item_id int, price float, create_timestamp datetime, modify_timestamp datetime)

create table inventory (itemID int, current_length int, create_timestamp datetime, modify_timestamp datetime)


and for a keyword search, you might (might, i don't know java) use a stored procedure like this:

create procedure fetch_items_by_keyword (@keyword varchar(255))

as

set @keyword = '%' + isnull(@keyword,'') + '%'

select item_id,item_name, type, keyword
from items
where keyword like @keyword


I'd let everything stew in your brain for a while. sleep on it and start making your changes tomorrow.