I think it's better to track everything with its own number.
I do have a similar problem in a system we built. In that system, people take stuff from deposit, go out and use it then return it. Originally, they wanted to say "give me a 21" monitor, a cable and an adapter". Later, though, they wanted to associate a preference to items, because brand A is "better" than brand B, so if possible they would like to choose the best 21" monitor, based upon availability and ratings. Not only. Monitors (everything is an example, of course) have a calibration date and time, so they don't want a monitor that has to be calibrated every 2 years and the next calibration date is next week.
For your second question, thousands of records when you're really only concerned about a handful: look at your basement. How many things have you gathered there ? Stuff you will never touch again, maybe. But an inventory worth its name has to list them all. Of course, you can divide it into static and dynamic: note the last used date for every item and at night run a script that deletes all the records from your dynamic table and imports only the stuff you've used in, say, last year. You'll work 90% of the time with the dynamic inventory, in 10% of time you'll take a look at the bigger, static one and eventually items will migrate from one to the other. Or be bought, because you don't have them yet.
Thanks for your thoughts, siplus.