My suggestion is to not think about table columns yet, but to think in terms of attributes. An attribute is an entity like "product" that you need to group by, or filter on. Attributes generally can have multiple "forms". An ID is an attribute form, so is a description, a URL, image etc...so a product is ONE attribute with an ID form, a URL form, an image form... you get the idea. You can choose which form to show in reports and when you're browsing.
So let's say column 1 represents the ID of attribute A1, and column 2 represents the ID of attribute A2. When you create A1, it defaults to asking you for the ID form of A1 and you choose tableA and column 1. No big deal, but remember you can also specify other forms.
Then when you create attribute A2, it does the same thing but you should see tableA and B listed. In one of the tabs, you now specify parent, and you'd choose A1.
this should work. After you're done make sure to "update schema" before creating reports.