My BOMs are a little more complicated, because I build models of amplifiers and due to tax laws & inventory I must be able to keep track of how much each amp cost to build (total PIA). I was using a database, but it turned out to be a pain. So I went back to using multiple spreadsheets.
One spreadsheet per model per version. It lists the quantity, a part identifier, description, and use. I also have the circuit that it belongs in (preamp, PI, etc.) and the type of component (resistor, cap, etc.)
The part identifier is the key. Its not dependant upon its use within a schematic, but the component and its value. E.g. a 100k 1/2 Carbon Comp resistor might be "res 100k 1/2W CC"
On another spreadsheet (the inventory) I have the same part identifier, a description, the pick bin, manufacturer, supplier, supplier part number, price per quantity, date of price and number on hand.
When I go to order parts, I first double check amount on hand, then using a little excel formulas I create an order sheet based on the two spreadsheets.
This is way too complicated for building one off amps. But if you are doing a model series plus the govt wants you to know how much each cost, you will need something complex like this.