Good day to all!
Please help with optimization. I drew a DB scheme (drawn far from the rules, but the approximate essence is clear), created all the tables and columns in PostgreSQL, I start to fill in and then begin dancing with tambourines.

When I try to fill in a table where there are secondary keys, an error constantly occurs that says that the secondary key cannot be filled, because the reference to the primary key of the source table is empty. Roughly speaking: filling in the Equipment table, the “elephant” swears at the supplier’s secondary key ID , because in the Supplier table the primary key of the supplier ID is empty. You start to fill the Supplier table, he already swears at the secondary key ID equipment referring to the Equipment table - and so on the closed circle ...
As a result, I came to the conclusion that I have a curve implementation of the database itself at the root. Here it is. Please help understand. Thank you in advance!