Mih_Flyer -

There's loads of things you need to consider to improve database performance. First you need to know the technology you're going to be using i.e. SQL Server, Access, Oracle ?

Broadly speaking the following techniques can be used for all the above :

1) Use indexes - put indexes on those fields which you will use as search criteria. This is a tricky one because indexes add an overhead to adding/removing records and too many can grind things to a halt. Read the documentation with the DBMS you choose and see what the supplier recommends. Ignore Microsoft's claim that you can have as many indexes as you want in Access, be sensible.

2) Use stored procedures - these can be set off whilst the user is doing something else, fooling them into thinking more is happening than really is. It's the same principle as splash screens.

3) Read some books on database design. It's not just about normalising the data, you need to modify the normalised design to improve performance given the needs of your system. An example might be if you want to search all your current products for those that meet some criteria. To improve performance of this big search you could create a table for "archived" products which are no longer available but still supported. This reduces the number of records and removed one criteria from the search ( is the product current ? )

In the end it's a tricky process to get the balance right and you can spend over long worrying about it. Do you then need to consider netowkr bandwidth, bottlenecks, disk stripping, etc, etc, etc. Like I said, find a decent book and decide on the level you want to go to.

Hope this helps you make some decisions.