Personally, I always like to KISSAfter your Opinions (Your chance to shape this program)
Currently working on the Job and Parts tracking side of things.
I have a choice of a job containing parts, or a Job containing parts and parts containing components.
Take Braided Brake Hose Fitting as an example.
Job > Required Parts - Would be like this
Job name: Fit new brake hoses
Parts required: Braided brake Hoses , Banjo Bolts , Copper Washers
Or
Job > Major Part > Sub Components - Would be like this
Job Name: Fit new Brake Hoses
Primary Part: Braided Brake Hoses
Components: Banjo Bolts
Copper Washers
Or something completely different!