I was trying to compile a list of VisualForce components (but this could be any data really) and their attributes and put them in an Salesforce custom object.
So I did this in a way that was geared towards a traditional database. I made a list of all possible components and gave each one an ID. Then I created a list of all possible Attributes and gave each one an ID. Then I created an "Intermediate" table that held pairs of component IDs and attribute IDs, so that you could query any component and get a list of all its attributes and vice versa.
I naively thought I would then make a component object and a attribute object and an junction object to join them. But I am having problems.
I can't really set the IDs of the objects themselves, so I tried to set the name field to use the ID numbers I created and create a different field for the text name. Then I created a junction object, with a master detail to the component and a master detail to the attribute.
But when I try to upload the ID lists I get an error on the data type. Apparently it is looking for a reference and doesn't care that I have a number that does in fact match the name field of the other object.
So if you had a traditional many to many relationship using three tables in this manner, what is considered the best way to translate it to Salesforce?
Or if I wanted to plan such a thing from scratch and have it be designed towards the Salesforce platform what approach should I take?
Edit to clarify, below is a screen grab of three spreadsheets, each one would be the data that would go into traditional SQL tables.
The one I have labeled "1" is the components, the one I labeled "2" is a list of all the attributes and the on labeled "Junction" relates one table to the other. So that you could query any item in one and see the many attributes it has from 2, and you could query any item in 2 and see how many components in 1 that it is used in.
This would be the quick way to set this up in SQL Server for instance, but for the reasons I mentioned above it does not seem to be very Salesforce friendly.