something about one of the table sets doesn't sound right. If an assembly consists of related parts, that seems to be a parent/child relationship. If an assembly consists of sub assemblies which in turn consist of parts, then you have the same sort of relationship but it goes one level deeper. In the simpler case, primary assembly records should be in one table, parts in another, and you have a linking table (many to many) that relates one assembly to many parts. This also provides for assemblies with options, although it can start to get rather deep in analysis depending on the business at hand because in that case, the assembly number could appear more than once in the many side due to variations on its build. However, IMO this should be handled by variations in the assembly record such as an appendix to the assembly number, so that you maintain a single assembly number to a group of parts.
Not sure if any of that will help. You probably could post a stripped down version of your db, removing whatever it takes to get it down to size when you zip it.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.