Basic Bill of Materials schema
It's ok, but there's room for improvement. 


Don't use BOM. Use BillOfMaterials. 
It won't matter to you, but the next guy will thank me. 
You're missing indexes on the items you defined foreign keys for. They're not free, you have to create them yourself. 
I find it really odd that the BOM.Quantity can be null. If a part is on the BoM, shouldn't there be at least one of them required as part of the "kit"? I may even consider using a default value of one.