Adding the country id is a good plan. I would suggest to use the (two letter) ISO 3166 coding.
It may sound like a good plan to add that two letter id for states to caches in the US, but that doesn't work for international caches. Here in The Netherlands the provinces are not specified, but many other country do have their provinces, Bunderslander, or whatever they are called. Simply check the list of "states" when you search for a cache or create a pocket query and you will see what I mean. But a simple numeric id would do the job.
As long as Groundspeak publishes all those lookup tables it does not mind what number an id is.
Even the states are defined in ISO 3166-2 as a 2 character field.
E.G. Netherlands:
Drenthe NL-DR
Flevoland NL-FL
Fryslân NL-FR
Gelderland NL-GE
Groningen NL-GR
Limburg NL-LI
Noord-Brabant NL-NB
Noord-Holland NL-NH
Overijssel NL-OV
Zuid-Holland NL-ZH
Utrecht NL-UT
Zeeland NL-ZE