Если каждый subCountry
может принадлежать только одному country
, то все, что вам нужно сделать, это переместить внешний ключ:
country
-countryID (PrimaryKey)
-countryName
subCountry
-subCountryID (PrimaryKey)
-relativeToCountry (Foreign Key -> country.countryID)
-subCountryName
Теперь каждый subCountry
хранит своего "родителя"и все subCountry
строк для country
cxan можно найти, выбрав для'lativeToCountry`.
Если связь более сложная (и исторически я думаю, что это возможно из-за изменений границ), тогда вам нужноопять другая структура, что-то вроде
country
-countryID (PrimaryKey)
-countryName
subCountry
-subCountryID (PrimaryKey)
-subCountryName
subCountryStructure
-relativeToCountry (Foreign Key -> country.countryID)
-relativeToSubCountry (Foreign Key -> subCountry.subCountryID)
Теперь у каждого country
может быть много subCountry
записей и наоборот.Кроме того, информация о каждом конкретном отношении (например, период времени, в течение которого оно существовало) может быть сохранена в новой таблице.