Viv,
I think the design is wrong. Put the difference between parts and components at the highest level (Component) and the problem is solved. I would suggest to change te design like this :
Only 2 tables : Component (or call it Product or whatever) and ComponentList
The field ItemIsPart sould be placed in the table Component.
Component:
Id Name IsPart
1 Car False
2 Wheel Assembly False
3 Grey Paint False
4 Grey Car False
7 Tyre True
8 Wheel Hub True
9 Engine True
10 Bolt True
11 White Paint True
12 Black Paint True
ComponentList:
Id Uses Quan
1 9 1
1 2 4
2 8 1
2 7 1
2 10 4
3 11 .9
3 12 .3
4 3 1.2
1 10 1023
4 1 1