高效创建大表的方法

时间:2011-06-09 05:02:40

标签: mysql

我正在努力创建一个由三大洲(非洲,亚洲和欧洲)组成的数据库,每个国家/地区使用不同数量的国家和不同数量的语言。例如,

Continent-Country-Language
Africa - Egypt - Arabic
Africa - Egypt - English
Africa - Somalia - English
Asia - China - English
Asia - China - Mandarin
Asia - China - Cantonese
Asia - Japan - japanese
Asia - Iraq - Arabic
Europe - Germany - German
Europe - Belgium - Dutch
Europe - Belgium - French

如果使用5大洲,150个国家和2000种语言,上表变得非常庞大!此外,如果每个变量都链接到一个外部链接,则总工作变得非常痛苦。

我的问题是如何以更有效的方式创建如此大的表?

TIA!

1 个答案:

答案 0 :(得分:2)

别。

创建五个表 - 一个用于大陆,一个用于国家,一个用于链接语言和国家,最后一个用于语言。

Continent       ContinentCountry    Country       CountryLanguage    Language
------------    ----------------    ----------    ---------------    -----------
continent_id <- continent_id        name          language_id     -> language_id
name            country_id       -> country_id <- country_id         name

这称为数据库规范化

  

数据库规范化的目标是分解与异常的关系,以产生更小,结构良好的关系。

来自维基百科关于Database Normalization的文章。