Отношения MySQL Region / Country и нормализация - PullRequest
0 голосов
/ 07 февраля 2012

Я создаю отношения с Region, Sub_Region, Country и Country_Regions.

Причина, по которой я хочу 4 слоя, заключается в сужении поиска.Например, целевая страница будет иметь карту Google со всем миром, вы можете нажать на любой регион (континент), который масштабируется на этот континент со своими подрегионами, щелкнуть по субрегиону, чтобы получить страны, и, если в стране есть регионы страны,он увеличится до тех ...

Моя проблема не во всех отношениях между регионом и страной, имеющих Sub_Region.

Примером Sub_Region является

Region    |    Sub_Region         |    Country        |    Country_Region
Caribbean |    Lesser Antilles    |    Saint Martin   |    NULL
Europe    |    Iberian Peninsula  |    Spain          |    NULL

Проблемаесли я попытаюсь поместить Соединенные Штаты в эту структуру, это будет выглядеть следующим образом:

Region         |    Sub_Region         |    Country         |    Country_Region
North America  |    NULL               |    United States   |    Southeast

Как мне это нормализовать, чтобы при отсутствии Sub_Region или Country_Region данные оставались согласованными и InnoDBбудете рады помочь мне со ссылками?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Соберите всю информацию о вашем местонахождении в виде таблицы и поместите ее в древовидную структуру

table location (
    id,
    title,
    location_type,
    fk_loc_parent,
)
0 голосов
/ 07 февраля 2012

Нормализация должна быть такой:

Таблица 1:

регион

id | region_name 

Таблица 2:

страна

id | country_name | region_id 

Таблица 3:

region_type

 id | region_type  (Southeast,Southwest etc)

Таблица 4:

субрегион

 id | sub_region  | country_id | region_type_id
...