I have a table with entity-attribute-value structure. As an example, as entities I can have different countries. I can have the following attributes: “located in”, “has border with”, “capital”.
Then I want to find all those countries which are “located in Asia” and “has border with Russia”. The straightforward way to do that is to join the table with itself using entities are the column for joining and then to use where.
However, if I have 20 rows where Russia in in the entity-column, than in the joint table I will have 20*20=400 rows with Russia as the entity. And it is so for every country. So, the joint table going to be huge.
Will it be not more efficient to use the original table to extract all countries which are located in Asia, then to extract all countries which have border with Russia and then to use those elements which are in both sets of countries?
You shouldn’t end up having a huge number of records so this should work