I want to know whether it is possible to have more than one row of the dbf file that comes with a shapefile map linked to the same feature of such shapefile. The reason for that is simple: to have datasets in the long-format with the shapefiles.
In case, as I suppose, it is not possible, I will still give more details below so someone might suggest good alternatives.
Suppose you have individual shapefile maps of countries' administrative divisions (AD), i.e. one shp file per country. Now, you have information that you want to save per countries' AD for multiple years, given that information is available for different years depending on the country.
The first naïve temptation would be to organize the dbf of the shapefile map in the wide-dataset format, similarly to the following:
The problem with such an approach is that, as I mentioned, each country has INFO on different years. Thus, in case we later want or need to merge countries together in one single world-map, this will become a mess of many variables each covering just a few countries. In a trivial, non-spatial dataset, the solution would be to simply adopt a long-format for the dataset, like the following:
That would be the ideal solution, because then all the dbf of countries' shapefiles would have the exact same variables, with same names, so merging multiple countries would become easy and intuitive. However, for that one would need more than one row of the dbf pointing to the same map feature (in this case, to the same AD of countries).
That is why I ask:
1) is such a thing possible somehow, i.e. to create shapefile maps that have more than one row linked to the same feature of the same map?
If not at all possible:
2) are there any alternatives? I have considered geodatabases but want to avoid file formats that require proprietary format to be read.
My last resource would be to just have two dbfs per country, one with the variables "Country" and "AD" in example I give here, and another with "YR" and "INFO" in long-format, both linked with an ID of some sort. But I am looking for more elegant ways of doing so if any is available.